pandaka адрес+1 и так далее это для протокола Овен, а не для Modbus.
На счет остального, вам надо разобраться с адресацией регистров ПЛК, вот табличка есть http://www.owen.ru/forum/attachment....4&d=1372923370
ИМХО, все тревоги, выводимые на панель, а так же изменение битов, если необходимо, лучше кинуть в начало.
Например набросать кратное количество 2-х байтных данных. Все тревоги для панели сделать с 0. Тогда в панеле ничего не надо высчитывать, просто биты с 0 по х это у вас тревоги.
И т.д. Помнится у меня тоже панель висла, так как читал и писал не оттуда куда надо (например ошибся с номером регистра)
Я слейвом ИП не делал еще, но думаю, что если в конфигураторе поставили 32-х битную переменную, а вы еще из слейва пытаетесь туда писать, то будет наложение.
И надо разделить чтение и запись по разным переменным, тоже может зависать из-за этого.
Последний раз редактировалось melky; 08.08.2014 в 13:25.
Я бы делал кратное 4-м байтам.Например набросать кратное количество 2-х байтных данных.
amn согласен с уточнением, просто кратности я достигал именно 2-х байтовыми переменными. Это всего лишь WORD и проще потом оперировать, что оставить для списка тревог, а что для обратного управления через панель.
з.ы. я решил оставлять восемь двоек, ну а дальше уже часть остальных переменных, выровнял до кратности 4-м, и дальше real (float)
pandaka просто каждый регистр состоит из 2-х байт (слово - WORD) - всегда
Пример показывает чтение 4-х байтных данных (самые нижние на примере), они занимают 2 регистра - 4-ый и 5-ый (столбец справа)
4х - это чтение/запись вроде.
А так по примеру - 8 бит данных это один байт, половина слова, вторая половина выравнивается контроллером
2 байта = word = 1 регистр
4 байта = real = 2 регистра
Допустим в конфигурации ПЛК: на ИП320 в UMD мне необходимо:
-выбирать номер программы( 4 алгоритма) для этого я задаю PROGNUM - 32bit input module;
-таймер обратного отсчета TIME_OUTP - register outpit module;
-отображать номера манометров в которых наблюдается спад давления - либо ERR_ON_DD (register output module), либо использовать список тревог. еще пока знаю как..
Так вот какие значение registerAdress задавать этим переменным PROGNUM, TIME_OUTP, ERR_ON_DD...0,1,2 или как???
pandaka например вы сделали 8 бит переменную (плюс выравнивание) или 2-х байтную переменную - это один регистр - 0
следующая переменная, будет первым регистром, если она будет 32 бита или REAL (float), то такая переменная займет два регистра, 1 и 2
Следующая переменная будет начинаться уже с 3-его регистра.
И т.д и т.п.
Тоже непонятно, зачем на PROGNUM использовать 32 бита, оставьте 2-х байтную переменную WORD = 1 регистр = не заморачиваетесь с выравниванием. (можно и 8 бит использовать, но все равно потратите один регистр)
Всем добрый день. Старая проблема осталась.
Решила проверить связь ИП320(master) и МДВВ(slave), просто повыводить значения выходов на экран панели. В итоге при подачи сети на ИП320 выдается "потеря связи". То есть панель не может установить связь со slave-устройством, было проверено: совпадение значений сетевых параметров slave-устройства и панели ИП320; правильность подсоединения кабеля, наличие питания мдвв и панели.
Потом на форуме нашла такое сообщение: Считать состояние каждого отдельного входа напрямую с МДВВ вам не удастся. Они передаются сразу группой, а на ИП320 не реализован алгоритм разбора этой группы (маски). Вы можете считать только число, образуемое этой группой битов. Посему, работа со входами МДВВ без ПЛК малоинформативна.
Что еще можно попробовать, чтобы докопаться до сути? Все таки хочется чтобы соединение ПЛК+МВ110-8АС+МДВВ+ИП320 заработало ( напоминаю что при соединении ПЛК+МВ110-8АС+МДВВ+ИП320 панель не выводит информацию на экран. Без МДВВ на панель информация выводится, следовательно исключаем неисправность кабеля).