В контроллерах митсубиси есть встроенная функция для передачи сигналов посредством встроенного Ethernet'а и через протокол UDP. Использование этой функции есть в инструкциях от митсубиси, но там написано все не так уж и очевидно, поэтому я сейчас хочу чуть подробнее расписать как это делается, чтобы было проще разобраться.
Первым делом нужно отправиться в меню параметров PLC где настроим соответствующим образом встроенный порт ethernet. Там настраиваем коммуникацию: протокол UDP, IP адрес получателя датаграм, порты отправителя и получателя. Номер каждой коммуникации пригодится в будущем для диагностики.
В мануале дана такая программа для организации функции передачи (socket communication function), но где что и для чего, не совсем понятно:
Например, бит SD1282.0 - что за бит? Почему 1282 и почему именно нулевой? Оказывается в другом мануале есть пояснение, это бит специального регистра статуса соединений. Причем нулевой бит соответствует соединению под номером 1, как раз то о чем я и говорил выше при настройки связи в параметрах ПЛК.
Такой регистр на самом деле больше нужен при настройке TCP соединения, потому что там перед передачей устанавливается связь с приемником, в UDP это не требуется и если все сделано правильно, то регистр будет установлен сразу автоматически системой как только настроится соединение в параметрах. Однако его можно использовать в качестве диагностики соединения. Кстати есть и другие специальные регистры, например, SD1288.A - он будет TRUE когда встроенный ethernet порт подсоединен к хабу (есть передача по порту) и FALSE если нет.
Далее в программе идет пересылка числа 6 в нулевой элемент массива Var_SendData - это количество пересылаемых байт, которые записаны в следующие элементы массива (можно поставить 1024 и тогда будет пересылаться килобайт). Потом мы записываем какие данные будем передавать в каждый элемент массива. В данном примере 1234 это не просто число, а шестнадцатеричное число, то есть 2 байта или одно слово. Поэтому потом во 2 и 3 элементы массива записываются еще две пары байт что в итоге дает те самые шесть байт записанные в нулевом элементе массива. Ну а дальше уже идет сам блок функции: "00" - просто любое имя, 1 - это номер соединения, если настраиваете пятую коннекцию ,то нужно ставить 5. У нас еще перед пятеркой ставят К, то есть получается К5 - это значит что 5 записана в десятеричном формате. Потом идет контрольное слово в формате Word. В s3 блока передачи записывается наш массив, начиная с нулевого элемента. И в конце заполняется d - результат - битовый массив с двумя состояниями, которые после каждой пересылки сменяют друг друга.
Возможно после прогрузки программы и параметров PLC придется перезагрузить контроллер. Хотя может и не придется... И да, принять пересылаемые данные по UDP на компьютер, можно через программу Yet Another Terminal. Ну и через IBA PDA
Комментариев нет:
Отправить комментарий