lalaniml.8u.cz | |||||
| Дельта ispsoft руководствоВопросы по программированию ПЛК в ISPSoft Вопросы по программированию ПЛК в ISPSoft Здравствуйте! У меня есть контроллер 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. Как мне понять где ошибка? P.S. К сожалению не смог прикрепить программу к посту - могу отправить на почту по желанию Вложения выдержка из протокола общения с устройством protocol.JPG (89.56 KIB) Просмотров: 9363 AlexB Сообщений: 7 Зарегистрирован: 01 фев 2012, 16:34 Инструкция по охране труда при побелке помещений Доверенность на созданию ооо | ||||
lalaniml.8u.cz
|