PDA

Просмотр полной версии : ПЛК63+МВ110-224.8А



Кофа
02.10.2018, 10:46
Подскажите, как осуществить опрос МВ110-224.8А (4 термопары) от ПЛК63. Примеры опроса МВА8 не работают. Мастером ПЛК63 быть не может. Сам затрудняюсь найти рабочий пример.

Мастеренко Иван
02.10.2018, 11:01
Здравствуйте!
Обмен нужно делать через библиотеку Modbus.lib. Скачать её можно здесь (https://www.owen.ru/license-file?f=/uploads/121/lib_owen_navigator_plc110-160_v6.zip)
Пример опроса 8А через библиотеку ниже:
38973

Кофа
03.10.2018, 10:06
Спасибо, хорошая программа. Но мне не понятно - в котором месте мне задать адрес модуля? Он у меня равен 0.
DevAddr:=22 , (*адрес*)
Я попробовал в этом месте задать 0. Компилятор выдал ошибку - невозможно преобразовать 0 в BYTE.

Евгений Дударев
03.10.2018, 11:07
из Википедии:

адрес ведомого устройства — адрес подчинённого устройства, к которому адресован запрос. Ведомые устройства отвечают только на запросы, поступившие в их адрес. Ответ также начинается с адреса отвечающего ведомого устройства, который может изменяться от 1 до 247. Адрес 0 используется для широковещательной передачи, его распознаёт каждое устройство, адреса в диапазоне 248…255 — зарезервированы;
(https://ru.wikipedia.org/wiki/Modbus)

Кофа
03.10.2018, 13:03
Ещё одна непонятка. В вашей проге есть коментарий:
(*Организуем счетчик, что бы передавать эти данные по сети*)
но счётчика никакого нет?
В прогамме "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
Мне бы понять - зачем этот счётчик и где используется "А"?

Мастеренко Иван
03.10.2018, 15:00
Счетчика в примере нет, потому что он не нужен. Это лишняя часть кода. Переменная А применяется только в счетчике.

Кофа
04.10.2018, 09:08
Итоги отладки:
1. COM порт очень часто не открывается. Очень часто программа останавливается по ошибке связи "0".
2. Но когда всё нормально, то :
Quantity:=48, а DataSize (*кол-во считанных байтов *) равно 15. Признак завершения операции cmpl:=FALSE.
Пробовал Quantity:=1. DataSize (*кол-во считанных байтов *) равно 7. Признак завершения операции всё равно cmpl:=FALSE.
Дальше не знаю как быть. Мне сбоку люди говорят, что всё дело в п. 1.

Кофа
04.10.2018, 10:53
С COM портом разобрался, достиг cmpl:=TRUE.
Но вылезла следующая проблема. При cmpl:=TRUE err=255! Дальше прога не работает.

Uniqum
05.10.2018, 14:52
С COM портом разобрался, достиг cmpl:=TRUE.
Но вылезла следующая проблема. При cmpl:=TRUE err=255! Дальше прога не работает.

ДЕРЖИ КОД, НЕ ДОРАБОТАЛ ТОЛЬКО ЗАПИСЬ FLOAT

Кофа
08.10.2018, 09:01
Uniqum , у тебя не определены Х1, Х2, Х3, Х4, ADER .
Кодесис ругается.

Uniqum
09.10.2018, 08:46
я же написал (не доработал запись float) вместо х1..4 (это номера байтов в массиве buffer) ader это номер устройства куда пишем float...

Мастеренко Иван
15.10.2018, 16:27
Подключился к Кофа по Team Viewer. Пример работы с библиотекой (Modbus чтение 8А.pro) был некорректно перенесен на язык SFC. Вопрос решен.