Перевод всего опроса на Modbus.lib решит ваши проблемы.
Перевод всего опроса на Modbus.lib решит ваши проблемы.
Можно:
Добавьте в конфигурацию "String input modul".
В его настройках укажите сколько байт необходимо считать.
Чтобы не считывать данные циклически: добавьте еще один Universal Modbus device.
В настройках укажите
Work mode: by command;
Вложение 33207
Привяжите переменную, по изменению которой на 255 будет происходить опрос
Вложение 33208
Строки в CODESYS нуль-терминированная.
Это значит, что если в считанном массиве будет байт равный 16#0, то дальнейшие байты не будут отображаться и функциями для работы со строками их невозможно будет получить.
Варианты
1) читать данные в переменную типа ARRAY [0..к-во байт] OF BYTE
2) читать данные в STRING, но разбирать через библиотеку для работы с памятью SysMem и указатели.
1й проще и предпочтительнее.
А как конфигуратору указать что бы он читал в мой массив ARRAY [0..к-во байт] OF BYTE? Ему же просто задаешь имя переменной в которую он читает строку и она строкового типа...
Если объявляю массив с таким же именем, то ругается при компиляции.
Вложение 33211
мне тоже кажется странным, что вместо того чтоб объяснить человеку, что надо поднимать свой уровень подготовки,модератор начинает критиковать правильно ли я использую термины
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Вариант 1:
Объявить переменную, указав где в памяти расположены ее данные:
Вложение 33231
Вариант 2:
Привязать переменную в конфигурации и работать с данными по указателю на нее:
Вложение 33230
Хочу обратить внимание, что некорректная работа с указателями (вариант 2) может привести к тяжело отслеживаемым проблемам.
Поэтому:
1) Перед обращением к указателю удостоверьтесь, что он инициализирован (не равен 0);
2) Удостоверьтесь, что не выходите за границы выделенной памяти (индекс массива в данном случае не должен быть выше выделенной области памяти).
Я сюда и пришел что бы его поднять при помощи людей которые профессионалы в этой области, а Ваши уважаемый товарищ capzap ответы в стиле "машина не едет потому что колеса не крутятся" только эфир засоряют и не приближают к решению проблемы.
Осинский Алексей большое спасибо!!! Узнаю от Вас много полезного, побольше бы таких людей! Попробую с указателями, если что-то не пойдет, буду писать вручную весь опрос по старинке.