Просмотр полной версии : TCP клиент на ПМ01+ПЛК154
Добрый день. Подскажите такой вопрос: необходимо отправлять данные через GPRS на ПК(ТСР сервер), имеется ПЛК154 и ПМ01. Подключить ПМ01 к ПЛК как Modbus Slave? Есть ли примеры отправки на ST? Как принимать данные от сервера?
Насколько я помню, в такой связке,когда ПК сервер, обрыв связи с ПК вызывает перезагрузку контроллера. Была тестовая прошивка, устраняющая этот баг, но только для ПЛК100.
Филоненко Владислав
26.12.2015, 14:05
Это пофиксили уже давно. Скорее всего уже после НГ выйдет большое обновление ПО для всех ПЛК 1хх и 110-хх
Что-то так и не подсказали. Если это реализуемо, то как подключать модем в конфигурации? Сокет клиент уже реализован, он годится для обмена данных?
Насколько я помню, как делал я, когда тестировал, то создается модуль Modbus (Master) и модуль Debug RS-232 (который ставится по умолчанию) заменяете на модем и добавляете PPP-драйвер. IP адрес указываете вашего сервера. По-моему это было в инструкции где-то прописано или в примере.
Есть ли примеры отправки на ST? Как принимать данные от сервера?
Выполняется стандартно: читаете input, пишете в output модули
Выполняется стандартно: читаете input, пишете в output модули
Насколько я понял, это отправка по протоколу Modbus TCP? Мне нужно по сокету отправлять свои данные, или я Вас неверно понял...
Филоненко Владислав
28.12.2015, 10:14
После поднятия PPP можно пользоваться как конфигурацией, так и сокетами. Без разницы.
Просто в конфигурации уже есть Modbus Master на 485 интерфейсе, как быть? 232 тоже занят... Могу ли я его подключить как Universal Network Module и работать с ним по 485, хотя там ПЛК уже как мастер?
Кто нибудь ответит на вопросы выше?
http://www.owen.ru/forum/showthread.php?t=12729&p=83823&viewfull=1#post83823
Организовал отправку пакетов AT командами(примеров в интернете куча), все бы хорошо, но вылезает неприятный момент: при отправке вместе с пакетом данных отправлялась фраза "AT+CIPSEND", хотя задержку между чтением/записью в порт организовывал, менял задержки, теперь вместе с пакетами еще выползает кусок пакета, не оборванный, а именно кусок повторный(не более 10 байт). Во вложении что получаю видно.
8:
IF queue_size>0 THEN
SysComWrite(com_num,ADR(Set_AT_CIPSEND),LEN(Set_AT _CIPSEND),0);
master:=90;
ELSE master:=102; END_IF
90:
IF Wait1.Q THEN
ComRead(rcvStr=>rcvStr); result:=1;
IF FIND(rcvStr,'>')>0 THEN
master:=9;
ELSE master:=8; END_IF
IF FIND(rcvStr,'ERROR')>0 THEN
master:=3; END_IF
END_IF
9:
WHILE queue_size>0 DO
toSend:=QUEUE_POLL(); //выьираем из очереди накопившиеся пакеты
SysComWrite(com_num,ADR(toSend),BYTE_TO_INT(toSend[2]),0);
END_WHILE
IF queue_size=0 THEN
master:=100;
END_IF
100:
SysComWrite(com_num,ADR(Set_26),SIZEOF(Set_26),0);
master:=101;
101:
IF Wait.Q THEN
ComRead(rcvStr=>rcvStr); result:=1;
IF FIND(rcvStr,'SEND OK')>0 THEN
master:=102;
ELSE master:=102; END_IF
IF FIND(rcvStr,'CLOSED')>0 OR FIND(rcvStr,'ERROR')>0 THEN
Set_AT:='AT+CIPCLOSE$R';
SysComWrite(com_num,ADR(Set_AT),LEN(Set_AT),0);
master:=3; END_IF
END_IF
102:
ComRead(rcvStr=>rcvStr); result:=1;
IF queue_size>0 THEN
master:=8;
END_IF
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot