Подскажите, как осуществить опрос МВ110-224.8А (4 термопары) от ПЛК63. Примеры опроса МВА8 не работают. Мастером ПЛК63 быть не может. Сам затрудняюсь найти рабочий пример.
Подскажите, как осуществить опрос МВ110-224.8А (4 термопары) от ПЛК63. Примеры опроса МВА8 не работают. Мастером ПЛК63 быть не может. Сам затрудняюсь найти рабочий пример.
Здравствуйте!
Обмен нужно делать через библиотеку Modbus.lib. Скачать её можно здесь
Пример опроса 8А через библиотеку ниже:
Modbus чтение 8А.pro
Инженер по продуктам «ПЛК и модули»
e-mail: i.masterenko@owen.ru | skype: i.masterenko_owen
Спасибо, хорошая программа. Но мне не понятно - в котором месте мне задать адрес модуля? Он у меня равен 0.
DevAddr:=22 , (*адрес*)
Я попробовал в этом месте задать 0. Компилятор выдал ошибку - невозможно преобразовать 0 в BYTE.
из Википедии:
адрес ведомого устройства — адрес подчинённого устройства, к которому адресован запрос. Ведомые устройства отвечают только на запросы, поступившие в их адрес. Ответ также начинается с адреса отвечающего ведомого устройства, который может изменяться от 1 до 247. Адрес 0 используется для широковещательной передачи, его распознаёт каждое устройство, адреса в диапазоне 248…255 — зарезервированы;
(https://ru.wikipedia.org/wiki/Modbus)
Менеджер по продуктам «Софт и адаптеры связи»
Ещё одна непонятка. В вашей проге есть коментарий:
(*Организуем счетчик, что бы передавать эти данные по сети*)
но счётчика никакого нет?
В прогамме "Modbus чтение INT и REAL (ST)" есть аналогичное место:
(*Организуем счетчик, что бы передавать эти данные по сети*)
t:=t+1;
IF (t MOD 1000)=0 THEN
A := A + 1;
IF A > 9999 THEN
A := 0;
END_IF
END_IF
Мне бы понять - зачем этот счётчик и где используется "А"?
Счетчика в примере нет, потому что он не нужен. Это лишняя часть кода. Переменная А применяется только в счетчике.
Инженер по продуктам «ПЛК и модули»
e-mail: i.masterenko@owen.ru | skype: i.masterenko_owen
Итоги отладки:
1. COM порт очень часто не открывается. Очень часто программа останавливается по ошибке связи "0".
2. Но когда всё нормально, то :
Quantity:=48, а DataSize (*кол-во считанных байтов *) равно 15. Признак завершения операции cmpl:=FALSE.
Пробовал Quantity:=1. DataSize (*кол-во считанных байтов *) равно 7. Признак завершения операции всё равно cmpl:=FALSE.
Дальше не знаю как быть. Мне сбоку люди говорят, что всё дело в п. 1.
С COM портом разобрался, достиг cmpl:=TRUE.
Но вылезла следующая проблема. При cmpl:=TRUE err=255! Дальше прога не работает.
Uniqum , у тебя не определены Х1, Х2, Х3, Х4, ADER .
Кодесис ругается.