Просмотр полной версии : ПЛК304 и ПМ01
Доброе время суток, уважаемые знатоки. Перерыл весь форум, изучал самостоятельно, но так и не понял как подключить ПМ01 к ПЛК304, я думал раз есть библиотеки для модулей ввода/вывода, то и для модема есть аналогичная, но похоже ошибался. Может существует примерчик для ПМ01+GKR304 в режиме слейв? Или наведите на мысль. Буду благодарен.
http://www.owen.ru/forum/showthread.php?t=11920 практически ни чем не отличается, та же среда разработки, так же надо открывать порт и т.д.
http://www.owen.ru/forum/showthread.php?t=11920 практически ни чем не отличается, та же среда разработки, так же надо открывать порт и т.д.
Прочитал тему, но все равно не понятно. Теперь у меня есть Putty и WinSCP, войти в консоль я могу, могу посмотреть файлы в плк304. Прочитал и статью по настройке gprs соединения, файлы подходящие для Мегафона на ПЛК есть. В статье были строчки "Запустив pppd из под от root'a мы получим соединение с internet: root# pppd ". Однако в Putty в ответ на команду pppd возвращается Not found. Похоже что то я не так делаю. Подскажите куда копать дальше?
там все же стоит на настольный линукс, потому возможны такие сообщения, не мешало бы ознакомиться с основами линукс. Гарантированно исполняемые файлы будут запускаться если, находясь в том же каталоге где и файл используется команда ./pppd например, либо находясь в другом месте файловой системы указать полный путь например /usr/sbin/pppd
Теперь происходит это:
/mnt/ufs/root # /usr/sbin/pppd
Couldn't open the /dev/ppp device: No such file or directory
/usr/sbin/pppd: You need to create the /dev/ppp device node by
executing the following command as root:
mknod /dev/ppp c 108 0
Типа какого то файла нет похоже.
:) ну так Вам же дана подсказка, как его создать.
А вообще чтоб незапортить ОС, переходите на создание соединения с помощью АТ-команд из программы КДС, думаю ПЛК от этого будет больше пользы, неумрет раньше времени
А вообще чтоб незапортить ОС, переходите на создание соединения с помощью АТ-команд из программы КДС, думаю ПЛК от этого будет больше пользы, неумрет раньше времени
А вообще - я этого и хочу! только с чего тут начать? С добавления модуля SysComOpen2?
да, сперва открываете порт, этот момент везде одинаков, можно смотреть примеры и из КДС2.3. С модем идет общение тоже как везде, просто отправляете массив байт команды и сразу слушаете что ответит модем, осталось последнее как создать соединение, это расписано в документе по работе с модемом,да и я где то оставлял примерчик списка команд на форуме
зы http://www.owen.ru/forum/showpost.php?p=83738&postcount=6
Ок, прменил блок ComConn, порт открывается. А как теперь посылать команды модему? Что для этого использовать? Я подумал, что может MB_ASCII_TX и MB_ASCII_RX, но что то не получается.
открыв порт Вы можете только отправить на модем АТ-команды, ни о каком MB_ASCII_TX и MB_ASCII_RX речи быть не может. Если смотреть мою ссылку то я попытался показать реализацию modbusTCP, там есть команда в конце AT+CIPSEND=15, здесь показано какое количество байт Вы отправите на конкретный хост модбас устройства, после знака "> " идут сами байты в 16-ной форме, т.е два знакоместа на байт, если запрос будет получен слейвом, в приемном буфере полученном с помощью команды SysComRead, будет находится ответ на запрос, его тоже надо разобрать самостоятельно.
Существует еще вариант с CSD соединением, я с нашими ОПС не смог договориться о подключении услуги так что опыта использования нет, может у Вас получиться, тогда сможете использовать модбас для последовательного соединения
Значит обмен данными происходит с помощью SysComRead и SysComWrite? Но АТ-команды это String, а SysComRead и SysComWrite работают с байтами, как быть?
Спасибо, с этим тоже разобрался) Дошел до того что устанавливается соединение с сервером google как в примере. Как я понимаю, в данном случае ПЛК является мастером (клиентом) и SIMка не обязательно должна иметь статический IP? А как быть если мне нужно наоборот, как было в связке ПЛК110+ПМ01?
Сдается мне Вы не пробовали так делать) Имеете ввиду установив соединение с любым сервером (хоть с тем же google)? Далее из Lectus посылаю запрос, ПЛК принимает его, обрабатывает и отвечает?
:) возвращаемся к первому варианту с pppd.
Еще раз проверте настройки установленные в файле gprs.chat. Если ругается на отсутствие ppp, выполните команду, которую пишет
mknod /dev/ppp c 108 0, запускаете /usr/sbin/pppd, если всё прошло без ошибок, смотрите ответ на команду /sbin/ifconfig. Если присутствует ppp0 значит связь установлена, поропубйте сделать пинг, куда нибудь в инет, сразу скажу у меня длительность составляет примерно 1 сеунду на теле2, а далее уже в проекте либо добавляете модуль modbusTCP, либо с помощью библиотек открываете сокет и настраиваете работу либо слейва либо мастера
ppp0 есть, пинг из командной строки или тут же из putty сделать? Из командной строки пинга не было. Модуль modbusTCP это что? Уж не это ли Application - add device/ Ethernet - add device/ModbusTCP Slave Device? Без сокетов возможно обойтись? Для меня это слово звучит пугающе)
из putty пингуйте, причем если наберете после /sbin/ifconfig ppp0 то увидите в низу изменившееся количество принятых и переданных байт
По модулям как то так, я правда подключал serial модуль и на WinV3, всё работало, а ТСР-шный модуль вроде не совсем корректно работает, так что я пробовал через сокеты, даже какой то "пилотничек" выкладывал на форуме в виде библиотеки
Думаю сокеты мне все равно пригодятся, где о них можно почитать? Вопрос вдогонку - вот эти строчки все равно будут нужны? AT+CGDCONT=1,"IP","internet"
AT+CGATT=1
AT+CIPSTART="TCP","ххх.ххх.ххх.ххх","port"
AT+CIPSEND=15
строчки нет не нужны боле. Про сокеты можно прочитать в документации на КДС2.3 практически ни чем не отличаются, только результирующая ошибка введена указателем в аргументы функций, что очень удобно по сравнению с V2.3. Лучше всего понять их работу можно по примерам
А когда же эти строчки вообще нужны?
ну эта таже установка соединения, только с помощью АТ-команд, попробуйте все то же самое не с модемом, а с мобильником и увидите как значек коннекта появиться на экране телефона, после выполнения этих команд, достаточно будет без команд начинающихся на CIPххх, а CIP - ы это уже непосредственно кому и что отправить
Так все таки соединение то придется устанавливать?
через pppd Вы устанавливаете соединение средствами ОС, она точно так же, теми же командами взаимодействует с модемом, только не заметно от пользователя
При этом должен ли ПЛК иметь такой же адрес как и у SIM карты модема?
не думаю что так у Вас получится, IP ПЛК будет виден при команде /sbin/ifconfig eth0, а модемное соединение можно посмотреть по команде /sbin/ifconfig ppp0
ой что-то я совсем запутался)) Какой порядок действий должен быть? Сперва создание сокета? Дальше что?
:) так далеко не заходил (имею ввиду модемное соединение интернет), я ближайшую неделю буду еще с смс разбираться, потом перейду на сокеты, gprs и т.п.
Создав сокет, организуете либо сервер либо клиент, если сервер создали то можете взглянуть видео как его проверить http://www.owen.ru/forum/showpost.php?p=85826&postcount=26
Это можно проделать и без модемаЮ, а подключив интернет через модем, таким же образом можно и с удаленного компа отправлять инфу, правда в видео не показана реализация TCP, но примеров куча
А сам пример программы, по которой снят фильм, у Вас есть? Буду признателен, если скинете его. И странно, что к обсуждению не присоединяется техподдержка.
я такие проекты не сохраняю, :) сам убедился что работает, другим показал и достаточно. А библиотека пока в стадии альфа, так что её не буду выкладывать, скажу только что она повторяет TcpUdpLib от S3 Software
Дабы не создавать новую тему спрошу тут же. Сколько регистров доступно в модуле ModbusTCP_slave_device? Как я понял 40 на ввод и 40 на вывод? Могу ли я добавить 2 таких модуля тем самым увеличить количество регистров, а то как-то несерьезно по 40 регистров.
ЗЫ: Забыл еще вопросик - почему значения Входных регистров обнуляются примерно через 1 секунду? Обмен веду посредством Lectus.
Евгений Сергеевич
31.07.2012, 17:16
для увеличения есть вот этот патч (во вложении)
Какая у вас версия CoDeSys?
версия 3.4 sp2 Hotfix1. Посмотрим что за патч.
А что с патчем делать? Положить в какую то папку?
Спасибо за патч, разобрался, очень полезная вещь. Может есть еще какие-то полезные патчи, о которых стоит знать, и где их брать?
Евгений Сергеевич
31.07.2012, 18:24
нет пока это единственный
А что насчет второго вопроса - почему значения Входных регистров обнуляются примерно через 1 секунду? Обмен веду посредством Lectus.
Евгений Сергеевич
02.08.2012, 13:25
Память вернулась.
Необходимо отключить тайм-аут у слейва. этот тайм аут ведет себя как сторожевой таймер: если по истечению указанного времени опрос непроизошел контроллер считает что все плохо обрыв связи и переводит значение переменной в безопасное состояние, т.е. в ноль. Как это значени редактировать пока не ясно.
Оключается на вкладке где указывается адрес слейва.
Спасибо за подсказку. И следующий вопрос тут же, так как мне кажется он относится к теме. Значит при соединенном напрямую контроллере ПЛК110 с компом через Ethernet опрос из Lectus адекватный, всё как надо - запрос-ответ. При подключении ПЛК к интернету (ADSL роутер, проброс 502 порта сделан) происходит только первый запрос/ответ, далее примерно через 15 секунд происходит снова запрос, который остается без ответа, и через время периода опроса снова отправляется запрос и тд. Если остановить опрос и снова запустить, то соединение уже не устанавливается и запросы не отправляются. Проверено было сначала на мобильном интернете от мегафона, затем от одного из провайдеров (Дом.ru). Если перезагрузить контроллер, то всё повторяется. Лог прилагаю. Опрашиваются 2 переменные.
10:14:18.609 [4004] КЛИЕНТ ЗАПУЩЕН
10:14:21.734 [2224] (xxx.93.44.38:502) Подключение - ОК
10:14:21.734 [2224] (xxx.93.44.38:502) Tx: [12] 00 01 00 00 00 06 01 04 00 00 00 01
10:14:22.328 [2224] (xxx.93.44.38:502) Rx: [11] 00 01 00 00 00 05 01 04 02 00 04
10:14:22.343 [2224] (xxx.93.44.38:502) Tx: [12] 00 02 00 00 00 06 01 04 00 01 00 01
10:14:22.828 [2224] (xxx.93.44.38:502) Rx: [11] 00 02 00 00 00 05 01 04 02 00 20
10:14:22.843 [4004] TQueueTasks.OnDataChange
10:14:22.843 [4004] TQueueTasks.OnDataChange - OK, Result=OK (0x0), dwTransid=0, hGroup=0, hrMasterquality=0, hrMastererror=0, dwCount=2, phClientItems=([2] 5, 6), pvValues=([2] 4, 32), pwQualities=([2] 192, 192), pftTimeStamps=([2] 04.08.12 10:14:22, 04.08.12 10:14:22), ItemIDs=([2] plc110_adr1.byte1, plc110_adr1.temp_inside)
10:14:30.000 [2224] (xxx.93.44.38:502) Tx: [12] 00 03 00 00 00 06 01 04 00 00 00 01
10:15:00.000 [2224] (xxx.93.44.38:502) Tx: [12] 00 04 00 00 00 06 01 04 00 00 00 01
10:15:30.000 [2224] (xxx.93.44.38:502) Tx: [12] 00 05 00 00 00 06 01 04 00 00 00 01
10:16:00.015 [2224] (xxx.93.44.38:502) Tx: [12] 00 06 00 00 00 06 01 04 00 00 00 01
10:16:30.015 [2224] (xxx.93.44.38:502) Tx: [12] 00 07 00 00 00 06 01 04 00 00 00 01
10:16:35.734 [4004] TIOPCItemMgt.RemoveItems, Group=Group_plc110_adr1, dwCount=2, phServer=([2] 6, 7)
10:16:35.734 [4004] TIOPCItemMgt.RemoveItems - OK, Result=OK
10:16:35.734 [4004] Отключение IOPCDataCallback
10:16:35.734 [4004] TOPCGroup.Destroy "Group_plc110_adr1"
10:16:35.734 [4004] TIOPCServer.RemoveGroup, hServerGroup=3, bForce=False
10:16:35.734 [4004] TIOPCServer.RemoveGroup - OK, Result=OK (0x0), Name=
10:16:35.734 [4004] Отключение IOPCShutdown
10:16:35.734 [4004] (xxx.93.44.38:502) Отключение - ОК
10:16:35.734 [4004] Выгружен экземпляр сервера
10:16:35.734 [4004] КЛИЕНТ ОСТАНОВЛЕН
PS: кстати заметил что период опроса совпадает с параметром "время ожидания ответа" - 30 сек.
Малышев Олег
05.08.2012, 10:06
Я смог добиться стабильной работы не Lectus а с Insat Modbus OPC server. На 32 точки он бесплатный.
32 точки это мало) а lectus уже куплен. Мне кажется дело может быть в роутере.
Добрый день!
подскажите пожалуйста новичку как написать программу для опроса модулей плк304 и связать это все с модемом для передачи данных на диспетчерскую. Смотрел примеры и темы форума, честно говоря мало что понял, как добавить девайсы модулей и модема?
Добрый день!
подскажите пожалуйста новичку как написать программу для опроса модулей плк304 и связать это все с модемом для передачи данных на диспетчерскую. Смотрел примеры и темы форума, честно говоря мало что понял, как добавить девайсы модулей и модема?
Модем придется садить на отдельный порт и например вручную организовывать открытие порта и передавать в диспетчерскую смски
www.owen.ru/forum/showpost.php?p=88181&postcount=27 вроде на видео нормально показан один из вариантов добавления модуля, причем все как написано в документации
вы имеете в виду на один из портов ПЛК304?
вы имеете в виду на один из портов ПЛК304?
Да, потому что он будет мешаться стандартным протоколам обмениваться данными с модулями ввода/вывода
подскажите что может быть причиной:
подключался ПЛК304 в кодесис 3, задавал параметры Gateway и контроллер определялся, но в один момент перестала налаживаться связь, сеть работает, порт LAN горит.
Попробовал переустановить программу, результат тотже, пробовал на другой ПК установить - без изменений.
В чем может быть причина?
надо смотреть найдено ли и выбрано ли активное устройство
в том то и дело что при нажатии кнопки "Сканировать сеть" ни одно устройство не находится
сам плк пингуется с компьютера?
да, IP сканером находится адрес и пк и плк
вы написали что придется садить модем на отдельный порт и организовывать открытие порта, а если по точнее какой блок мне использовать в CFC? как прописать его открытие и добавить модем?
написал программу по примеру на CFC, вот что получилось http://uploads.ru/gjys1.png
где то должна быть выложена библиотека КомСервис, с ней достаточно просто организовать управление портом
я понимаю как в примере открывается порт для подключения модулей ввода/вывода , а как организовать управление порта для ПМ01?
добавить еще один блок Comconn?
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot