Добрый вечер! Насколько я понял "авто перезапуск соединения" перезагружает modbus master. Вопрос в том надо ли перезагружать Slave или нет. Дело в том, что мне посоветовали сделать перезагрузку Slave, но как это сделать я до конца так и не разобрался. В библиотеке нашел ModbusSerialSlaveBase но что подавать на входы-выходы не понял. И еще вопрос. Как присвоить переменную к каналу модуля, например к mv110_32dn.rInput1? Сколько ни пробовал кодесис выдает ошибку! Заранее благодарен за помощь!
Добрый вечер.
Установка галочки "Авто перезапуск соединения" - все, что нужно для восстановления связи с модулем в случае сбоя.
Больше ничего в программной части трогать не нужно.
Название канала rInput означает, что канал входной.
Т.е. это состояние входа. Чего вы хотите добиться, присвоив ему какое-либо значение?
Последний раз редактировалось Осинский Алексей; 15.09.2015 в 08:21.
Когда использовал шаблоны присваивал каналу имя, например Start, Stop, SB, LE и так далее. У меня 5 модулей в проекте + 3 частотника, 1 ПР114 и 5 СМИ, в общем много каналов которые я в свое время "обозвал" понятными обозначениями. При написании программы ориентироваться на rInput и иже с ними не удобно. Пробовал SA1: BOOL:=mv110_32dn.rInput1; не помогает.
Программа на CFC. А проще никак ко входу переменную присвоить нельзя? Простите может я не явно обозначил проблему? Задача поменять mv110_32dn.rInputХ на прописанные у меня в схемах названия. При написании и проверке программы для меня эти обозначения более понятны, чем mv110_32dn.rInputХ.
Я понял Вашу задачу. Вариант, предложенный мной - наиболее простой.
Либо Вы можете в каждом цикле присваивать переменной SA1 значение mv110_32dn.rInput1, а дальше обрабатывать значение SA1.
Что по-моему слишком сложно и затратно.
Может быть Вы не совсем поняли предложенный мной вариант?
Вы в теле своей программы можете работать со значением переменной по указателю (SA1^) как с любой другой переменной типа BOOL.
В таком случае не придется в каждом цикле присваивать переменной SA1 значение mv110_32dn.rInput1.
Изменить же, вручную, название выходов модуля Вы не сможете.
Последний раз редактировалось Осинский Алексей; 15.09.2015 в 10:57.
Значит я вас не понял. То есть строчкой SA1: POINTER TO BOOL := ADR(mv110_32dn.rInput1); присваиваю SA1 ко входу 1. А как обращаться в теле программы ко входу 1 - SA1?