Показано с 1 по 4 из 4

Тема: ПЛК73 МB мастер

  1. #1

    По умолчанию ПЛК73 МB мастер

    Здравствуйте!
    На ПЛК 73 хочу прикрутить слейв устройство на 2й RS485
    Темы смежные почитал, доки покурил.

    Столкнулся со следующим вопросом:
    Мне нужно посылать на прибор 6 переменных типа UINT по 6ти разным адресам резистров,
    а так же читать из прибора 9 переменных типа UINT по 9ти разным адресам резистров.

    Если бы мне нужно было только читать или писать в прибор, то примеров и информации вроде бы достаточно,
    но как организовать последовательность Send/recive правильно?
    Если у меня на запись и чтение будет организовано два PRG send_PRG и recive_PRG, то это допустимо?
    функции чтения записи же не одновременно работают, как организовать последовательность чтения и записи в прибор, чтобы не было ошибок и конфликтов?
    PS не хочу грузить PLC_PRG межсетевым обменом и писать туда портянку с текстом
    Последний раз редактировалось werg; 13.03.2024 в 11:48.

  2. #2

    По умолчанию

    Цитата Сообщение от werg Посмотреть сообщение
    Здравствуйте!
    На ПЛК 73 хочу прикрутить слейв устройство на 2й RS485
    Темы смежные почитал, доки покурил.

    Столкнулся со следующим вопросом:
    Мне нужно посылать на прибор 6 переменных типа UINT по 6ти разным адресам резистров,
    а так же читать из прибора 9 переменных типа UINT по 9ти разным адресам резистров.

    Если бы мне нужно было только читать или писать в прибор, то примеров и информации вроде бы достаточно,
    но как организовать последовательность Send/recive правильно?
    Если у меня на запись и чтение будет организовано два PRG send_PRG и recive_PRG, то это допустимо?
    функции чтения записи же не одновременно работают, как организовать последовательность чтения и записи в прибор, чтобы не было ошибок и конфликтов?
    PS не хочу грузить PLC_PRG межсетевым обменом и писать туда портянку с текстом
    В примерах есть использование автомата состояний CASE, для чтения и записи, делаете например сначала открытие порта, потом чтение 1 -2 шага, потом запись 1-2 шага. Достаточно одной программы или ФБ.
    Сделать можно и в одной программе или ФБ, а можно и в 2 программах или ФБ, но это лишнее уже.
    Последний раз редактировалось kondor3000; 13.03.2024 в 12:59.

  3. #3

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    В примерах есть использование автомата состояний CASE, для чтения и записи, делаете например сначала открытие порта, потом чтение 1 -2 шага, потом запись 1-2 шага. Достаточно одной программы или ФБ.
    Сделать можно и в одной программе или ФБ, а можно и в 2 программах или ФБ, но это лишнее уже.
    Спасибо, стало понятнее.
    Но хотелось бы небольшое уточнение на примере записи\чтения 2х переменных (val_1 и Val_2) типа int
    То есть я могу действовать так:
    1. Устанавливаю настройки com порта
    2. Открываю соm порт
    3. Проверяю открытие
    4. Далее с помощью функции MB_WR_SNG_REG
    CASE 1 записываю val_1
    5. Жду завершения и перехожу к CASE 2
    6. С помощью функции MB_RD_HOLD_REGS
    считываю val_1
    7. Жду завершения и перехожу к CASE 3
    8. CASE 1 с помощью функции MB_WR_SNG_REG записываю val_2
    9. Жду завершения и перехожу к CASE 4
    10. С помощью функции MB_RD_HOLD_REGS
    считываю val_2
    11. Жду завершения и возвращаюсь к СASE 1

    Так примерно, да?
    А обязательно ли делать обработку ошибок?

    А если произойдет обрыв связи, например у мастер или слейв случится ресет по питанию,
    возобновится ли обмен или нужно что то еще руками писать?

    А в примерах запись переменной напрямую, а чтение через буфер, это зачем?
    Последний раз редактировалось werg; 13.03.2024 в 14:29.

  4. #4

    По умолчанию

    Цитата Сообщение от werg Посмотреть сообщение
    Спасибо, стало понятнее.
    Но хотелось бы небольшое уточнение на примере записи\чтения 2х переменных (val_1 и Val_2) типа int
    То есть я могу действовать так:
    А если произойдет обрыв связи, например у мастер или слейв случится ресет по питанию,
    возобновится ли обмен или нужно что то еще руками писать?
    А в примерах запись переменной напрямую, а чтение через буфер, это зачем?
    Примерно так, вам ничего не надо выдумывать, копируете что надо из чтения, далее из записи, расставляете шаги и в конце проверка.
    Через буфер удобнее делать, если вам надо читать, записывать по несколько переменных с адресами подряд,
    например начальный адрес 0, длина 10 регистров, и в буфере получаете 10 регистров подряд, с 0 по 9 адрес
    Последний раз редактировалось kondor3000; 13.03.2024 в 14:56.

Похожие темы

  1. ПЛК МАСТЕР
    от LAGOOPED в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 21.05.2021, 11:51
  2. Ответов: 5
    Последнее сообщение: 19.07.2020, 07:40
  3. ModBus мастер в ПЛК73
    от RomAl в разделе ПЛК63/73
    Ответов: 14
    Последнее сообщение: 18.06.2015, 16:50
  4. ПЛК мастер по TCP
    от killbill2 в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 21.01.2012, 02:19
  5. Ответов: 5
    Последнее сообщение: 07.09.2011, 09:36

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •