Здравствуйте! Подскажите, пожалуйста, существует ли в CodeSys 2.3 аналог библиотеки Modbus Slave (CodeSys 3.5) для организации работы ПЛК110 как Slave устройства?
Здравствуйте! Подскажите, пожалуйста, существует ли в CodeSys 2.3 аналог библиотеки Modbus Slave (CodeSys 3.5) для организации работы ПЛК110 как Slave устройства?
http://www.kipshop.ru/CoDeSys/steps/...figuration.pdf страница 38, раздел 3.1, чем не подходит?
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
То есть специальной библиотеки нет, как в CodeSys 3.5? Просто мне необходимо передавать на верх порядка 1000 регистров и я думаю, что библиотекой это сделать легче, чем конфигуратором.
ПЛК замечательные слейвы через конфигуратор, но в каких то кривых прошивках есть косяки с размером слейва - с 1000 будут проблемы.
Столкнулся с той же проблемой. Неужели для этого нужно тупо вставлять в конфигураторе по одному (или по два через 4 byte) 1000 регистров? File зачем то вставить можно, а область памяти или массив регистров нельзя
Нашёл в документации ответ, как решить поставленную задачу:
1. Добавить в Modbus Slave подэлемент Modbus Master
2. Добавить в Modbus Master Universal Modbus Device
3. Добавить в Universal Modbus Device переменную String Output Module State нужной длины.
4. Разместить массив регистров, который нужно выводить, по адресу String Output Module State
5. Определить экспериментально начальный адрес String Output Module State.
Интересно, кто нибудь пользуется таким костылём?
Последний раз редактировалось rwg; 20.08.2016 в 10:10.
С мастером встроенным в слейв есть однако проблемы http://www.owen.ru/forum/showthread....l=1#post147040
Хотя со String Output Module State наверно работать будет.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Возможно, кому-нибудь пригодится мой костыль: я экспортировал из CoDeSys конфигурацию ПЛК с несколькими переменными, обработал её как текстовый файл скриптом (увеличивая номера переменных и входов) и импортировал в проект обратно. Всё работает.
Поделюсь методом, который НЕ работает. Чтобы желающие поэкспериментировать не теряли время. В конфигурации Master Slave ПЛК создал одну переменную 2 байта, а в глобальных переменных расположил по адресу этой переменной переменную типа ARRAY[1..1000] OF WORD. Логика была такая - если программа глупая, то она будет по Модбасу передавать содержимое ячеек памяти в соответствии с запросом. Если программа умная, то она догадается, что нужно расширить область памяти до размеров массива и тоже будет работать. Компилятор ошибок не показал. Программа оказалась не глупой, не умной, а себе на уме - она выдавала мастеру ошибку, если он запрашивал содержимое регистров, не добавленных в конфигурацию Master Slave ПЛК в явном виде. В общем, хочешь через SLAVE передавать 1000 регистров - добавь в конфигурацию 1000 пар байтов или 500 двойных регистров.