Добрый день.
Такой вопрос: можно ли в методе функционального блока обращаться к var_in_out переменным этого блока?
Оно у меня ругается предупреждением, но работает.
Можно так делать?Вложение 85805
Вид для печати
Добрый день.
Такой вопрос: можно ли в методе функционального блока обращаться к var_in_out переменным этого блока?
Оно у меня ругается предупреждением, но работает.
Можно так делать?Вложение 85805
Добрый день.
Можно.
Отображение этого предупреждения - просто не очень удачная реализация.
Вложение 85806
Добрый день, подскажите пожалуйста.
Если какое то устройство в ветке RS1-485 или RS2-485 отваливается(откинуть связь от него , сменить адрес) , то все устройства начинают гнать, устройства начинают очень плохо работать по модбасу(обмен становится кривой), зависать , очень долго обрабатывать команды или вообще не работать.
Ладно , если сейчас в процессе сборки шкафа и отладки ПО, а если в будущем какое-то устройство выйдет из строй и тогда ничего работать не будет...
Вложение 85925
Это минус модбаса или можно программное решить данную проблему?
Это минус последовательного интерфейса. Нужно уменьшать время таймаута и количество перезапросов.
Добрый день.
Сложно оценить, что вы вкладываете в понятия "гнать", "очень плохо работать", "обмен становится кривой" и "зависать".
То, что будет "очень долго обрабатывать команды" - это действительно так, потому что при попытке опроса отключенного устройства будут срабатывать таймауты.
Вы можете снизить значения таймаутов в соответствии с особенностями вашей задачи.
Технически можно в коде определить факт отключения slave-устройства и опрашивать его реже вплоть до восстановления с ним связи - но это потребует отказа от стандартных компонентов Modbus из дерева проекта и организации обмена через библиотеку.
Добрый день. А в ST работает Принцип Инверсии Зависимостей?
У меня есть интерфейс sensor и две его реализации, Температурный Датчик и Датчик Давления. И у FB AlertHandler есть метод HandleSensors, где на входе он принимает массив переменной длины ARRAY[*] OF sensor (интерфейс). И оно не компилируется (на скриншоте). Или тут в другом ошибка?
Вложение 85959Вложение 85960Вложение 85961Вложение 85963
UPD: поменял скриншот с ошибками на актуальный
UPD2: Получается, не работает этот принцип, не может метод зависеть от интерфейса, объект ему подавай. Заменил в методе в объявлении архива sensor на TempSensor, и оно компилируется.
И такой еще вопрос. Такая же проблема, как была с визуализацией: на выход ПЛК не привязывается свойство ФБ, выдает похожую ошибку:
Вложение 85965Вложение 85966Вложение 85967
Как интересно: если сделать метод, который обрабатывает один датчик, то можно ему указать интерфейс, и всё компилируется. Интересно, почему это с массивами не работает... Вложение 85968Вложение 85969
Массив переменной длины это ARRAY[1..nam] OF sensor, но никак не со звёздочкой (ARRAY[*] OF sensor )