PDA

Просмотр полной версии : как связать плк100 с тэм-104



Анзаур
18.12.2009, 15:43
Здравствуйте уважаемые. Я начинающий пользователь ПЛК 100 и Codesis. И вот какая проблемка...
Мне нужно связать ПЛК100 по интерфейсу RS-485 с прибором, не поддерживающим протокол Modbus. Этот прибор - вычислитель счетчика тепла ТЭМ104. Он поддерживает свой собственный протокол, который описан на сайте "tem-pribor.com". Я так понимаю, что для этого нужно уметь осуществлять посылку сообщений в порты ПЛК из управляющей программы написанной в Codesis. Возможно это сделать таким или может другим способом?

Николаев Андрей
18.12.2009, 17:09
1. Лучше писать CoDeSys.
2. Для работы по нестандартным протоколам есть библиотека SisLibCom. Ну и описание работы с данной библиотекой на русском языке. Выложена на диске с ПЛК и на нашем сайте в разделе CoDeSys

Анзаур
21.12.2009, 15:20
Здравствуйте Андрей. Спасибо за ответ. Я пытаюсь воспоьзоваться примером программы приведенной на диске. Если можно поясните как это сделать ? Если я правильно понял то SysLibCom Позволяет работать с COM портом ПЛК. Устройство с которым мне нужно связаться работает по RS-485. Могу ли я воспользоваться преобразователем интерфейса и если да то каким?

Николаев Андрей
21.12.2009, 18:23
в данном случае под Com портом подразумевается любой последовательный порт, в том числе и 485. адреса портов указаны в русскоязычном описании библиотеки, в самом начале.

Анзаур
23.12.2009, 14:10
Вот еще проблемка: судя по описанию сом порты в библиотеке Sislibcom определяются в переменной setings.port типа перечисление. В перечислении содержатся порты от com1 и дальше. RS485 определяется как соm0. Однако при попытке задать переменную setings.port:=0 переменной присваевается значение *** INVALID:0 *** . В то же время при присвоении значений 1 или 2 или 3... переменной присваевается значение Сom1 или Com2 ... Если проигнорировать это и оставить последствия присвоения 0-ля, то при открытии и запуске порта связь ПЛК и МДВВ пропадает, а при закрытии порта связь тем ни менее не восстанавливается. Настроики я делал такие:setings.Port:=0;
setings.dwBaudRate:=9600;
setings.byParity:=0;
setings.byStopBits:=0;
setings.dwBufferSize:=0;
setings.dwScan:=0;
setings.dwTimeout:=0;
При этом и MДВВ то же настроен на такие параметры, и до начала работы с портом хорошо общается с ПЛК... ЧТО ДЕЛАТЬ?

Александр Приходько
24.12.2009, 13:30
Пример открытия и инициализации порта.
Пример выложен в двух аналогичных вариантах на языках ST и CFC.
Данные примеры можно использовать, как начальные заготовки в программах,
где требуется работа с портами на прямую.

Программы написаны для ПЛК 100.Р-М c таргетом версии 2.10.

Если используется контроллер другой модели и другим таргетом,
то необходимо проделать следующие действия:
1) Открыть пример
2) Открыть вкладку ресурсы (слева внизу)
3) Выбрать элемент Настройки целевой платформы (слева)
4) В открывшемся меню выбрать ваш контроллер и нажать OK
5) Открыть элемент Конфигурация ПЛК (слева)
6) Открыть меню Дополнения (наверху) и выбрать пункт стандартная конфигурация
7) Открыть меню Проект (наверху) и выбрать пункт Очистить все
8) Открыть меню Проект (наверху) и выбрать пункт Компилировать все

В данном проекте используется надстройка над библиотекой SysLibCom.lib библиотека ComService.lib,
в которой реализовано открытие, инициализация, перенастройка на новые параметры и закрытие порта.
В проекте должны присутствовать обе библиотеки.
1748

Анзаур
24.12.2009, 16:32
Честно говоря ни чего не понял из этих примеров.
в моем случае я имею подключенные к ПЛК100 по RS485МДВВ и ТЭМ104. Перед началом работы с портом МДВВ замечательно контактирует с ПЛК. Затем начинается работа с портом:
1-Порт открывается SysComOpen(Setings.Port)=0;
2-При запуске порта SysComSetSettings(Setings.Port,ADR(Setings))=INVAL ID:16#FF;
3-Производится запись SysComWrite(Setings.Port,%MB0,7,0)=7;
4-Производится попытка чтения SysComRead(Setings.Port,%MB10,14,0)=0;
5-Порт закрывается SysComClose(Setings.Port)=FALSE;
И при этом настройки порта теряются? потятся или еще что? но ПЛК не имеет связи с МДВВ.
Даже если чтение и запись в порт производятся неправильно, то почему страдает процедура закрытия порта?
Еще интересно-в какую область памяти сохраняются данные о предыдущих настройках порта при использовании SysComSetSettings? Потаму, что в ходе работы я использую %BM0..%BM24.

Логвиненко Андрей
25.12.2009, 09:54
не нужно подключать к одному порту устройства работающие по модбасу и приборы с нестандартными протоколами, возможна куча всяких накладок. лучше взять ас-3м и подключится к сом-1.

Анзаур
25.12.2009, 10:27
спасибо за совет. я вобщем то же к такому решению склоняюсь. но остаются вопросы...
1-почему после закрытия порта управление портом не возвращается "операционной системе плк". может нужно еще что то сделать для этого ?
2-может можно непосредственно просто посылать данные в какойто регистр памяти плк для обращения к порту без сложных процедур открывания и закрывания порта?
3-где в памяти плк хронятся данные о настройке порта?
уважаемые специалисты овен!!! для меня это важные вопросы. наша компания спроектировала более 50 итп подразумевая что перед началом строительства мы успеем разобраться с этой проблемкой ))) если вы то же считаете, что лучше использовать разные порты, то пожалуйста скажите про это.
с уважением
анзаур - исп. дир.
ооо"радуга хит"

Александр Приходько
28.12.2009, 12:41
все ваши вопросы были реализованы в примере который выложен выше.
в данном примере был реализован алгоритм открытия, закрытия и инициализация порта новыми настройками - стандартная заготовка.

при использовании в системе устройств с различными протоколами желательно разносить устройства на разные интерфейсы.

Анзаур
20.01.2010, 11:52
Здравствуйте уважаемые специалисты
подскажите как ввести в CoDeSys в строке симвод Ctrl-z или $z
Это нужно для написания команды (AT+CIPSEND 'данные' Ctrl-Z)

Логвиненко Андрей
21.01.2010, 11:56
Это будет $1A

BorschovAN
31.12.2019, 11:02
Пример открытия и инициализации порта.
Пример выложен в двух аналогичных вариантах на языках ST и CFC.
Данные примеры можно использовать, как начальные заготовки в программах,
где требуется работа с портами на прямую.

Программы написаны для ПЛК 100.Р-М c таргетом версии 2.10.

Если используется контроллер другой модели и другим таргетом,
то необходимо проделать следующие действия:
1) Открыть пример
2) Открыть вкладку ресурсы (слева внизу)
3) Выбрать элемент Настройки целевой платформы (слева)
4) В открывшемся меню выбрать ваш контроллер и нажать OK
5) Открыть элемент Конфигурация ПЛК (слева)
6) Открыть меню Дополнения (наверху) и выбрать пункт стандартная конфигурация
7) Открыть меню Проект (наверху) и выбрать пункт Очистить все
8) Открыть меню Проект (наверху) и выбрать пункт Компилировать все

В данном проекте используется надстройка над библиотекой SysLibCom.lib библиотека ComService.lib,
в которой реализовано открытие, инициализация, перенастройка на новые параметры и закрытие порта.
В проекте должны присутствовать обе библиотеки.
1748

Прошу обновить ссылку, не рабочая....