-
как связать плк100 с тэм-104
Здравствуйте уважаемые. Я начинающий пользователь ПЛК 100 и Codesis. И вот какая проблемка...
Мне нужно связать ПЛК100 по интерфейсу RS-485 с прибором, не поддерживающим протокол Modbus. Этот прибор - вычислитель счетчика тепла ТЭМ104. Он поддерживает свой собственный протокол, который описан на сайте "tem-pribor.com". Я так понимаю, что для этого нужно уметь осуществлять посылку сообщений в порты ПЛК из управляющей программы написанной в Codesis. Возможно это сделать таким или может другим способом?
-
Супер Модератор
1. Лучше писать CoDeSys.
2. Для работы по нестандартным протоколам есть библиотека SisLibCom. Ну и описание работы с данной библиотекой на русском языке. Выложена на диске с ПЛК и на нашем сайте в разделе CoDeSys
-
Здравствуйте Андрей. Спасибо за ответ. Я пытаюсь воспоьзоваться примером программы приведенной на диске. Если можно поясните как это сделать ? Если я правильно понял то SysLibCom Позволяет работать с COM портом ПЛК. Устройство с которым мне нужно связаться работает по RS-485. Могу ли я воспользоваться преобразователем интерфейса и если да то каким?
-
Супер Модератор
в данном случае под Com портом подразумевается любой последовательный порт, в том числе и 485. адреса портов указаны в русскоязычном описании библиотеки, в самом начале.
-
Вот еще проблемка: судя по описанию сом порты в библиотеке 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ДВВ то же настроен на такие параметры, и до начала работы с портом хорошо общается с ПЛК... ЧТО ДЕЛАТЬ?
-
пример открытия и инициализации порта.
Пример открытия и инициализации порта.
Пример выложен в двух аналогичных вариантах на языках ST и CFC.
Данные примеры можно использовать, как начальные заготовки в программах,
где требуется работа с портами на прямую.
Программы написаны для ПЛК 100.Р-М c таргетом версии 2.10.
Если используется контроллер другой модели и другим таргетом,
то необходимо проделать следующие действия:
1) Открыть пример
2) Открыть вкладку ресурсы (слева внизу)
3) Выбрать элемент Настройки целевой платформы (слева)
4) В открывшемся меню выбрать ваш контроллер и нажать OK
5) Открыть элемент Конфигурация ПЛК (слева)
6) Открыть меню Дополнения (наверху) и выбрать пункт стандартная конфигурация
7) Открыть меню Проект (наверху) и выбрать пункт Очистить все
8) Открыть меню Проект (наверху) и выбрать пункт Компилировать все
В данном проекте используется надстройка над библиотекой SysLibCom.lib библиотека ComService.lib,
в которой реализовано открытие, инициализация, перенастройка на новые параметры и закрытие порта.
В проекте должны присутствовать обе библиотеки.
Инициализация порта.rar
Последний раз редактировалось Александр Приходько; 24.12.2009 в 13:40.
-
Честно говоря ни чего не понял из этих примеров.
в моем случае я имею подключенные к ПЛК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.
-
не нужно подключать к одному порту устройства работающие по модбасу и приборы с нестандартными протоколами, возможна куча всяких накладок. лучше взять ас-3м и подключится к сом-1.
-
спасибо за совет. я вобщем то же к такому решению склоняюсь. но остаются вопросы...
1-почему после закрытия порта управление портом не возвращается "операционной системе плк". может нужно еще что то сделать для этого ?
2-может можно непосредственно просто посылать данные в какойто регистр памяти плк для обращения к порту без сложных процедур открывания и закрывания порта?
3-где в памяти плк хронятся данные о настройке порта?
уважаемые специалисты овен!!! для меня это важные вопросы. наша компания спроектировала более 50 итп подразумевая что перед началом строительства мы успеем разобраться с этой проблемкой ))) если вы то же считаете, что лучше использовать разные порты, то пожалуйста скажите про это.
с уважением
анзаур - исп. дир.
ооо"радуга хит"
-
все ваши вопросы были реализованы в примере который выложен выше.
в данном примере был реализован алгоритм открытия, закрытия и инициализация порта новыми настройками - стандартная заготовка.
при использовании в системе устройств с различными протоколами желательно разносить устройства на разные интерфейсы.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума