PDA

Просмотр полной версии : Связь Lectus с ПЛК-160 через ПМ-1



AlexLaptist
01.10.2012, 14:35
Добрый день! Имею систему ПЛК-160 + ПМ01 с одной стороны и ПК с Лектусом с другой... Вроде всё настроил и со стороны ПЛК и со стороны Лектуса... ПЛК пингуется, даже через Кодесис подключаюсь к нему (правдо всязь не долго держится, практически сразу падает). Лектус тоже подключается к ПЛК но потом происходит разрыв связи... Вот часть лога Лектуса:


6:24:47.250 [2788] (95.135.233.34:502) подключение - ОК
16:24:47.250 [2788] (95.135.233.34:502)Tx: [12] 00 E9 00 00 00 06 71 03 00 00 00 18
16:24:57.265 [2788] Ошибка: устройство не отвечает (95.135.233.34:502 Адрес:113)
16:25:17.125 [2788] (95.135.233.34:502) подключение - ОК
16:25:17.125 [2788] (95.135.233.34:502)Tx: [12] 00 EA 00 00 00 06 71 03 00 00 00 18
16:25:27.125 [2788] Ошибка: устройство не отвечает (95.135.233.34:502 Адрес:113)
16:25:46.750 [2788] (95.135.233.34:502) подключение - ОК
16:25:46.750 [2788] (95.135.233.34:502)Tx: [12] 00 EB 00 00 00 06 71 03 00 00 00 18
16:25:56.765 [2788] Ошибка: устройство не отвечает (95.135.233.34:502 Адрес:113)
16:26:17.375 [2788] (95.135.233.34:502) подключение - ОК
16:26:17.375 [2788] (95.135.233.34:502)Tx: [12] 00 EC 00 00 00 06 71 03 00 00 00 18
16:26:27.390 [2788] Ошибка: устройство не отвечает (95.135.233.34:502 Адрес:113)
16:26:46.750 [2788] (95.135.233.34:502) подключение - ОК
16:26:46.750 [2788] (95.135.233.34:502)Tx: [12] 00 ED 00 00 00 06 71 03 00 00 00 18
16:26:56.765 [2788] Ошибка: устройство не отвечает (95.135.233.34:502 Адрес:113)
16:27:17.750 [2788] (95.135.233.34:502) подключение - ОК
16:27:17.750 [2788] (95.135.233.34:502)Tx: [12] 00 EE 00 00 00 06 71 03 00 00 00 18
16:27:27.765 [2788] Ошибка: устройство не отвечает (95.135.233.34:502 Адрес:113)
16:27:47.250 [2788] (95.135.233.34:502) подключение - ОК
16:27:47.250 [2788] (95.135.233.34:502)Tx: [12] 00 EF 00 00 00 06 71 03 00 00 00 18
16:27:57.265 [2788] Ошибка: устройство не отвечает (95.135.233.34:502 Адрес:113)
16:28:16.750 [2788] (95.135.233.34:502) подключение - ОК
16:28:16.750 [2788] (95.135.233.34:502)Tx: [12] 00 F0 00 00 00 06 71 03 00 00 00 18
16:28:26.765 [2788] Ошибка: устройство не отвечает (95.135.233.34:502 Адрес:113)
16:28:47.656 [2788] (95.135.233.34:502) подключение - ОК
16:28:47.656 [2788] (95.135.233.34:502)Tx: [12] 00 F1 00 00 00 06 71 03 00 00 00 18
16:28:57.671 [2788] Ошибка: устройство не отвечает (95.135.233.34:502 Адрес:113)
16:29:17.125 [2788] (95.135.233.34:502) подключение - ОК
16:29:17.125 [2788] (95.135.233.34:502)Tx: [12] 00 F2 00 00 00 06 71 03 00 00 00 18

Где я допустил ошибку? Подскажите пожалуйста...

YuriBel
01.10.2012, 18:31
А кто ж его знает, где вы допустили ошибку? Такое ощущение, что Лектус отсылает запрос, честно ждет ответа 10 секунд, и не получив его, отваливается. Выкладывайте программу для ПЛК и конфигурацию для Лектуса, тогда будут более вразумительные ответы.

capzap
01.10.2012, 18:42
у Вас точно в плк имеется в наличии 24 регистра? Сделайте больше на всякий случай, хотя бы на пару

AlexLaptist
02.10.2012, 06:51
Выкладываю следующие изображения... Вроде все необходимое отобразил. Конфигурацию ПЛК, как и конфигурацию Лектуса, взял с готовой (вроде работающей) программы. Сам только разбираюсь с данной темой, так что сильно не ругайте. С регистрами наверняка тут большие проблемы - слаб я в этой теме. Буду сильно благодарен если направите на пусть истинный. Изменил время ожидания ответа от ПЛК, лог немного изменился но проблемы не ушли... P.S. IP замазал по извесным причинам))) а в прошлом логе пришлось выдумывать для пущей правдоподобности)))

AlexLaptist
02.10.2012, 10:09
Возможно проблема с ПЛК... С ним изначально была проблема по связи (когда стоял на объекте постоянно терял связь). Попытался перепрошить, не получается - выдает ошибку...

YuriBel
02.10.2012, 10:54
Из того, что я увидел:
Лектус отправляет запрос на чтение функцией 3 24-х регистров, начиная с нулевого. Если посмотреть на вашу конфигурацию, то там регистров всего 19. Скорее всего в этом и дело.

AlexLaptist
02.10.2012, 11:22
Давайте разберемся...

8 бит = 1 байт
2 байта = 1 регистр
Float = 4 байта = 2 регитсра

В моем случае адрес первого регистра Float = 0 hex (в настройках в Лектуса, типизированная переменная)
Адрес второго Float = 2 hex
Адрес третьего Float = 4 hex
Адрес следующего регитсра Word = 6 hex
Дальше Word = 7 hex
Word = 8 hex
Word = 9 hex
Word = A hex
Word = B hex
Double Word = С hex (4 байта = два регистра)
Double Word = Е hex
Double Word = 10 hex
Double Word = 12 hex

Дальше я удалю переменные из Лектуса так как это уже отдельный вопрос... Я правильно всё понимаю??? поправьте меня

AlexLaptist
02.10.2012, 11:43
Вопрос по оставшимся переменным: Реализовал программу на базе существующей на сайте ОВЕН. Изначально овеновская программа контролирует флаги и ошибки модема при обмене по GPRS в режиме ПЛК - master, модем - slave и если таковые имеются, физически перезагружает модем и если надо перезагружает ПЛК. Так как у меня ПЛК - slave а модем -master то мне пришлось немного переделать программу. Буквально поменял одну переменную которая должна переодически присылатся с Лектуса (первый вопрос:Лектус может такое? (я думаю должен)), далее в программе ПЛК она анализируется и так ПЛК понимает что связь есть... Если переменная давно (скажем 10 мин) не обнавляется следуют процедуры перезагрузки модема а потом и ПЛК для востановления связи. (кому надо выложу скрин или сразу прогу)
Так вот как правильро реализовать передачу переменной на ПЛК. Я в Лектусе использовал счетчик 0-100 дублировал и присваевал это значение другой переменной с параметрами записи в определённый регистр на ПЛК идальше остался вопрос как наладить связь между ПЛК и Лектусом...
В будующем хочу ещё передавать время на ПЛК для синхронизации с сервером...

YuriBel
02.10.2012, 13:15
Давайте по порядку. Лектус -это ОРС- сервер, его задача -собирать данные и передавать их клиенту. В качестве клиента как правило выбирают СКАДА систему той или иной сложности или пишут некий свой софт. Насколько я понимаю, имено клиент инициирует загрузку и запуск сервера. И в этом случае, весьма, вероятно, что более логичным и легче реализуемым будет вариант работы с вашими переменными в программе-клиенте, например в СКАДА.
У вас в качестве клиента что используется?

Ну и может сначала разобраться с собственно обменом, а потом решать задачу контроля за соединением?, а то как-то хотим большого, не добившись малого?

AlexLaptist
02.10.2012, 13:34
Конечно конечно сначало нужно наладить связь... я просто решил пояснить почему я убрал некоторые переменные... В качестве клиента мы используем WinCC... Но я ещё не дошёл до неё... Жду другой ПЛК так как есть подозрение что этот неисправен. Видите ли я только начал работать в организации и только начал разбиратся в уже работающей системе... Тут многое нужно переделовать и дополнять и как любому программисту мне охото разобраться с нуля и написать свою программу, а не слепо использовать чужой код...

AlexLaptist
02.10.2012, 13:41
Для начала мне нужно понять как правильно сконфигурировать Лектус и переменные в ПЛК (понять адресацию регистров). Связь между контроллером и модемом ПМ01 я настроил. Связь между Лектусом и ПЛК вроде тоже сделала но она сбоит и ничего не передает. Кодесисом я подключаюсь к ПЛК (через модем конечно, не через провод...) правда связь опять же держится не долго практически сразу после соединения отваливается... В общем получу новый ПЛК буду дальше бороться за надёжность связи...

YuriBel
02.10.2012, 14:12
Так начните с простого, прицепитесь к контроллеру проводами, может быть даже через последовательный порт, сделайте простую программу, с одним-двумя регистрами и разберитесь с адресацией регистров и с передачей данных Лектусу, а потом уже дальше по нарастающей.

AlexLaptist
02.10.2012, 14:57
Помоему я начинаю понимать... То что у меня в логе Лектуса отображено (на предыдущей картинке) вполне нормально... Лектус конектится с ПЛК получает нужную инфу и отваливается... я же по глупости ожидал что он постоянно будет держать с ним связь... Единственное но! я расчитывал увидеть конкретные значения в соответствующей колонке "Значения" в Лектусе... Продолжаю бороться...

YuriBel
02.10.2012, 20:47
Ну нафига вам 14 переменных? Вы одну заведите в контроллере, напишите простенькую программу, чтобы она шевелилась, и одну переменную пробуйте увидеть. Когда поймете, в чем дело, тогда и 14 увидятся.

AlexLaptist
25.12.2012, 06:50
Вижу в теме мало что нового появилось... В общем возвращаюсь я сюда с тем же вопросом. На данный момент опрос ПЛК при помощи Лектуса успешно настроен и функционирует, но основная проблема так и не решина. Напомню мне необходимо передавать значения из Лектуса (или скады. как угодно) на ПЛК, для контоля связи. Т.е. на ПЛК выполняется блок программы контроля связи, он реагирует на изменение переменной пришедшей из Лектуса. Структура: в лектусе создано две переменные: одна переменная симулирования счётчика от 0 до 100 изменяется каждые 30 сек. Значения с этой переменной в доп. настройках дублируется в переменную модбас для дальнейшей передачи в ПЛК. Адресация настроена корректно ибо когда меняешь значение этой переменной непосредственно на ПЛК через кодесис, в Лектусе это изменине видо... А вот записи из Лектуса в ПЛК нет...
В чём же может быть загвоздка? Общался с тех.поддержкой Лектуса они сказали что так можно, в кратце описали что надо делать, но не помогло... Может быть связь между ПЛК и модемом не корректна? Модем у меня идёт как слейв... Может его надо сделать мастером...

Рабиндранат
25.12.2012, 10:57
Проекты, пожалуйста.

AlexLaptist
25.12.2012, 11:17
Стоило только заняться вопросом посерьёзней, и всё получается... Проблема решилась благодаря тех.поддержки Лектуса. Выполнив их рекомендации функция контроля связи теперь реализованна... Выполнил обновления Лектуса, дополнительных настройках переменной симуляции счётчика пояфилась функция с двумя возможными вариантами "изменять" и "отрабатывать". Выставляем отрабатывать. Всё работает. За доп. инфой обращайтесь в личку. Буду периодически заходить проверять письма...

AlexLaptist
25.12.2012, 12:11
По требованиям пролетариата выкладываю проекты. Покромсал их немного чтоб ничего лишнего не отдать, работоспособность не проверял. Но я думаю суть будет ясна... Все настройки регистров оставил нетронутыми... короче будут вопросы пишите, будем вместе ломать.:)

7705