Страница 1 из 1

ModBus и DASMBSerial

СообщениеДобавлено: Ср сен 12, 2007 6:38 pm
Help59
Здравствуйте, у меня появилась проблемка
задача с ПЛК забрать данные в InTouch. настроил DASMBSerial-2.0 ну и непосредственно сам InTouch. в ответ InTouch мне показыает 0. хотя в контроллере по этому адресу цифра лежит. встал прослушкай посмотрел запросы и вот что увидел: запрос формируется правильно примерно так 01 03 00 00 00 01 CRC. в ответ прилетает 01 03 04 00 00 00 00 CRC. т.е. на каждый запрос одного регистра в ответ прилетает 4 байта. и на сколько я понял из лога DASMBSerial он не понимет этого. т.е. для DASMBSerial необходимо чтоб на каждый регистр возвращалось по 2 байта.

Вопрос: как мне связазь ПЛК с InTouch?

СообщениеДобавлено: Чт сен 13, 2007 4:21 pm
Admin
Хороший вопрос. Я слышал о такой проблеме, и судя по всему это проблема железа (а какой у Вас ПЛК?) и вряд ли касается DASMBSerial. Поясняю :

Вот правильная структура данных протокола modbus:
Код: Выделить всё
/*F3: Read Holding Registers*/
typedef struct
{
   uint16 Addr;
   uint16 Count;
} typeF3Request;

typedef struct
{
   uint8 Len;
   uint16 Data[];
} typeF3Response;


Таким образом, на Ваш запрос
Код: Выделить всё
01 03 00 00 00 01

должен прийти ответ
Код: Выделить всё
01 03 02 00 00
а вовсе не
Код: Выделить всё
01 03 04 00 00 00 00

Как и показано на рисунке (проверено на наших модулях по TCP/IP поэтому без CRC)

СообщениеДобавлено: Пт сен 14, 2007 1:06 pm
Help59
Полностью с Вами согласен что на каждый запрошеный регистр в ответ должно прилетать 2 байта, а на 4.. использую ПЛК - ROC312.. может Вы в курсе чем можно заменить DASMBSeria ??

СообщениеДобавлено: Пт сен 14, 2007 1:40 pm
Admin
Честно говоря, я не в курсе - первый раз слышу про ROC312.

То что в ответ прилетает 4 байта может например означать что у ROC312 регистры 4 байтовые :o , тогда DASMBSERIAL точно Вам не подходит. В любом случае надо почитать спецификацию на ПЛК - понять структуру его регистров.

Нвйдите программу ModBus Poll - она не врет и поможет Вам разобраться врет ли DASMBSERIAL.

Если окажется что врет тогда надо понять Какое есть ПО для ROC312 ?
Например попробуйте поискать OPC сервер для ROC312 и тогда завязать его с Интачем можно через OPCLINK например.

СообщениеДобавлено: Пт сен 14, 2007 2:56 pm
Help59
ROC312 он от компании Эмерсон (http://www.emersonprocess.com/flow/Emer ... 6_312.html)

DASMBSerial не врет.. он просто не понимает наш ПЛК.. поскольку модбас немнога отличается... просто я думал может там есть в DASMBSerial какие доп настройки кот не описаны в стандартной документации для того что увеличить размер регистра до 4 байт.. или есть может какиенидь патчи для него.. ну раз нет будем мучаться... мы созванивались с поставщиками этих ПЛК но толи там попался нам не очень грамотный менеджер.. но ничего конкретного он нам сказать не смог.. поэтому скорее всего придется писать самим некое подобие DASMBSerial. :(

зы Вы бы не могли дать линк на OPCLINK
или да поможет на всем гугл? :)

СообщениеДобавлено: Пт сен 14, 2007 5:23 pm
Admin
Хватит однако иронизировать, я в самом деле буду рад Вам помочь.
А вот что нашел гугл, обязательно посмотрите, поскольку это то что Вам нужно
www.emersonprocess.com/russia/files/DV/ ... rified.pdf

Вот ссылка на OPCLink
http://www.InTouch.ru/support/pub/OPC_Link8.rar

А не хотите ли попробовать наши контроллеры ? В них уже заложена возможность интеграции со СКАДА. Есть OPC-сервер

Я не очень понимаю что значит "модбас не тот", он ведь четко документирован.

СообщениеДобавлено: Ср сен 19, 2007 11:01 am
Help59
2Admin спасибо за советы и линки

СообщениеДобавлено: Вт окт 02, 2007 11:00 am
Help59
2Admin. ещё раз возвращаясь к нашей проблеме.. не найдя нормальный OPC уже написали свой (точноее ДДЕ). к сожалению. сделать его универсальным довольно трудновато. а недавно я столкнулся с таким оборудованием как ИМ 2370. на сколько я понял этот преобразователь из 2 байт делает 4 байта. дык вот вопрос к вам: а вы случайно не слышали про такие преобразователи кот нам из 4 байт сделают 2. чтоб InTouch понимал:)... я думаю для многих бы некий маленький девайс облегчил бы жизнь! :)

СообщениеДобавлено: Вт окт 02, 2007 11:50 am
Admin
Скажите ка, нет, не слыхал. А этот девайс значит делает из 4 байт 2 по 2 :D Ну и ну!
А мне казалось, что если уж Вы пишете свою программу, то разделить байты можно и без всякой железки. А железки мы можем практически любые разработать, это да..

ROC 312 там не чистый модбас а его расширение.

СообщениеДобавлено: Пн дек 03, 2007 4:33 pm
buruga
По моему там в заголовке адреса и мастера и слейва.
Протокол вроде так и называется ROC protocol.
Давно разбирался могу соврать