Вопросы по программированию ПЛК в ISPSoft

Консультации специалистов.
Сайт:
https://www.delta-electronics.info
https://www.deltronic.ru
Матрикс Форум:
https://www.matrix-forum.ru
AlexB
Сообщения: 7
Зарегистрирован: 01 фев 2012, 16:34

Вопросы по программированию ПЛК в ISPSoft

Сообщение AlexB »

Здравствуйте!

У меня есть контроллер DVP40ES200R. В процессе разработки программы возник ряд проблем, связанных с программированием.
Задача - связаться со сторонним устройством (не Delta) с помощью Modbus RTU (через COM2) и считать с него регистры. Задачу пробовал решить несколькими путями - с помощью инструкции RS и инструкций MODRD, MODRW.
В протоколе общения с устройством указано, что для ыполнения функции чтения регистров (read input registers) требуется сначала отправить два байта - адрес устройства и номер команды, а затем несколько слов (word) - с начальным адресом, количеством регистров и контрольной суммой.
Параметры соединения сконфигурированы по инструкции в руководстве (в описании инструкции RS есть способ задания параметров соединения). Включен режим RTU (M1143=1), D1121=1.
Сначала я попробовал использовать инструкцию MODRW. Программа построена по примеру из описания API MODRW. При выполнении программы слежу (в режиме онлайн) за флагами ошибки, таймаута и т.д., а также за регистрами, в которые должны сохраняться отправленные и принятые данные (D1256-D1295).
Устанавливаю флаг выполнения инструкции в 1 - и ничего не вижу. Нет таймаута, нет ошибок (возможно слежу не за теми флагами?). COM2 - не мигает ни на мнгновение.
Пробую по другому - использую инструкцию RS. Настройки соединения те же. В регистры D0-D5 пишу данные для отправки по протоколу, считаю контрольную сумму (CRC) и использую инструкцию RS. Получаю таймаут. Вопрос - регистры D - содержат, как минимум, данные типа WORD? В протоколе указано что сначала нужно отправлять два байта (адрес и команда), а потом слова. Возможно мне следует, каким либо образом, отправлять именно БАЙТЫ? Пробовал 8bit режим (и с MODRW тоже), но, с ним ничего не изменилось.
Второй вопрос - в руководстве повсюду встречаются константы (типа К6 или Н24). ISPSoft при компиляции ругается на такие обозначения что они Unknown symbol. Для hex чисел получилось использовать обозначения типа 16#96. Что не так с десятичными? Я все правильно делаю? :)
И наконец - что может быть не так с использованием инструкции MODRW. Пробовал использовать и MODRD. Как мне понять где ошибка? :roll:

P.S. К сожалению не смог прикрепить программу к посту - могу отправить на почту по желанию :(
Вложения
выдержка из протокола общения с устройством
выдержка из протокола общения с устройством
protocol.JPG (89.56 КБ) 24486 просмотров

Alexander_I
Сообщения: 955
Зарегистрирован: 31 окт 2011, 15:18

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение Alexander_I »

Обычная распространенная ошибка у начинающих работать с этим оборудованием - попытка выполнять инструкцию коммуникации по фронту или неким кратковременным флагам. Условие выполнения инструкции (RS, MODRW) должно сохраняться от начала до окончания обмена, и может сниматься только тогда, когда принят последний символ (байт).

AlexB
Сообщения: 7
Зарегистрирован: 01 фев 2012, 16:34

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение AlexB »

Условие выполняется все время
Вложения
programm2.JPG
programm2.JPG (19.47 КБ) 24477 просмотров

pkl
Сообщения: 1468
Зарегистрирован: 23 ноя 2010, 10:08

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение pkl »

Второй вопрос - в руководстве повсюду встречаются константы (типа К6 или Н24). ISPSoft при компиляции ругается на такие обозначения что они Unknown symbol. Для hex чисел получилось использовать обозначения типа 16#96. Что не так с десятичными? Я все правильно делаю? :)
В ISPSoft перед десятичной константой символ "К" не ставится.
Пример опроса командой RS по протоколу ModbusRTU модема с дискретными входами , правда немного сырой, но рабочий,могу скинуть на почту. К сожалению здесь не знаю как прикрепить.

Alexander_I
Сообщения: 955
Зарегистрирован: 31 окт 2011, 15:18

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение Alexander_I »

А что, в вашем устройстве действительно регистры хранения начинаются с адреса 0 и идут подряд? Устройство допускает передачу 4-х регистров?

Alexander_I
Сообщения: 955
Зарегистрирован: 31 окт 2011, 15:18

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение Alexander_I »

И еще один момент. ISPsoft, на мой взгляд, продукт сыроватый. Что-то в нем изобразить, безусловно можно, но крайне тяжело. Особенно вносить исправления. Все-таки WPL во всех отношениях проработан на порядок лучше. Для него, кстати, и весьма неплохие примеры и разъяснения приведены в мануале для упоминаемых вами API.

AlexB
Сообщения: 7
Зарегистрирован: 01 фев 2012, 16:34

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение AlexB »

Спасибо за ответы, проблема решена!

Попробовал WPLSoft - появилось много непонятных глюков (с загрузкой, компиляцией и т.д. - ошибки какие-то), но зато понял что для моего устройства стандартные функции MODRD и MODRW не подходят, т.к. в них есть ограничения на номера функций. Решил делать с помощью инструкции RS - в 8bit режиме пришлось просто добавить нулевые регистры для выполнения протокола общения с устройством (для передачи word). И все заработало!

nnaf
Сообщения: 18
Зарегистрирован: 31 июл 2012, 13:54

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение nnaf »

Здравствуйте. Не могу разобраться с шаговой логикой на языке SFC в среде программирования ISPSoft. Ранее шаговую логику делал в LADе на WPLSoft все работает прекрасно. Сейчас требуется сделать в ISPSoft и я туплю. Проверяю в эмуляторе, с контроллером пока не проверял. Может быть у кого есть работающий пример? И еще вопрос. Требуется устанавливать бит(ы) в регистре D. Ранее обходился командой MOV. А сейчас требуется взводить, сбрасывать отдельный бит в слове, а как это сделать не пойму.

pkl
Сообщения: 1468
Зарегистрирован: 23 ноя 2010, 10:08

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение pkl »

По первому вопросу не подскажу, не делал в ISPSoft. По второму - инструкции BSET и BRST работают.

nnaf
Сообщения: 18
Зарегистрирован: 31 июл 2012, 13:54

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение nnaf »

Точно. Проверил, то что надо. В мануале по программированию контроллеров этих инструкций нет и WPLSoft их не поддерживает. А в ISPSoft эти инструкции добавлены.

Ответить