Попробуйте для элементов Цифровой ввод поставить галочку Дин. адр. При этом необходимо убедиться, что выбранный таким образом регистр (по умолчанию - PSW256) больше нигде не используется в проекте.
Вложение 27627
Вид для печати
Попробуйте для элементов Цифровой ввод поставить галочку Дин. адр. При этом необходимо убедиться, что выбранный таким образом регистр (по умолчанию - PSW256) больше нигде не используется в проекте.
Вложение 27627
Так помимо адресов регистров, нужно и адрес самого ТРМ в сети Modbus правильный указывать.
Кроме того, нужно убедится, что
- настройки порта панели такие же как и у ТРМ. Т.е. протокол (ModBus RTU или ModBus ASCII), скорость, контроль четности, длина данных, а самое главное - ТРМу нужно два стоповых бита.
Логика подсказывает, что при неверном адресе и/или настройках не удалось бы считать измеренное значение - о чем упоминается выше.
Значение уставки в пределах SL.L1 и SL.H1. Причем если работать через овеновский конфигуратор для ТРМ, то все необходимые переменные записываются исправно. т.е. прибор рабочий
для уставки в диапазоне от 15 до 35, для режима соответственно 0 и 1
Как ни странно, все работает только в протоколе ASCII. в чем суть так и не понял...
Пара вопросов:
Сохраняются ли значения переменных макросов между его вызовами или нужно сохранять в регистры?
Что там с комментариями на русском - где кириллический шрифт установить? В настройках проекта не реагирует.
Вот выдержка из хелпа на СП3хх
6. Запись ВЫКЛ (0) в бит регистра
Задача: Записать значение ВЫКЛ (0) в бит PSW400.4 регистра PSW400.
Код макроса: PSW[400] = PSW[400] & (0<<4); // побитовое И
Вопрос, - насколько корректна запись PSW[400] & (0<<4), ведь в итоге один черт (0<<4) == 0х0000 ?
Есть ли способ записать при помощи сдвигов что-нибудь вроде 0b11111011?
Конструкция (1<<2)^0 не работает, хотя препроцессор её глотает без ошибок.