Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Т.е. вы специально даете ответы, которые не имеют смысла без задавания дополнительных вопросов, и ожидаете знаков внимания? Вот это поворот.
Я ради интереса попробовал так:
Предсказуемо не сработало.Код:Reads(HMI_LOCAL_MCH, 0, TYPE_PSB, 256, 16, &PSB[356]);
Посмотрел проект по ссылке из #367 - в целом, все ясно, процентов 75 задач по манипуляции с памятью он закрывает, остальное можно самому написать по аналогии.
SokolovS'у тоже, видимо, этого хватило.
На счет Writes() я конечно погорячился, все таки я чайник в Си. Догадки были, что по аналогии с группировкой битов PSB в регистры PSB http://www.owen.ru/forum/showthread....l=1#post113602
будет возможность группировать биты 0х/1х также в целые регистры
А вот на счет Reads(), то работает
Например
Reads(PLC, 1, MODBUS_RTU_BIT_1X, 16, 2, &PSW[256]);
биты 1х16..1х47 будут прочитаны в биты регистров PSW256, 257
1х16-->PSW256.00, 1х47-->PSW257.15
Reads(PLC, 1, MODBUS_RTU_BIT_0X, 0, 3, &PSW[256]);
биты 0х00..0х47 будут прочитаны в биты регистров PSW256, 257, 258
0х00-->PSW256.00 - 0х15-->PSW256.15
0х16-->PSW257.00 - 0х17-->PSW257.31
0х32-->PSW258.00 - 0х47-->PSW258.15
Причем, опять же по аналогии с группировкой битов PSB
Reads(PLC, 1, MODBUS_RTU_BIT_0X, {0..15}, 3, &PSW[256]) эквивалентно Reads(PLC, 1, MODBUS_RTU_BIT_0X, 0, 3, &PSW[256])
Reads(PLC, 1, MODBUS_RTU_BIT_0X, {16..31}, 3, &PSW[256]) эквивалентно Reads(PLC, 1, MODBUS_RTU_BIT_0X, 16, 3, &PSW[256])
Reads(PLC, 1, MODBUS_RTU_BIT_0X, {32..47}, 3, &PSW[256]) эквивалентно Reads(PLC, 1, MODBUS_RTU_BIT_0X, 0, 32, &PSW[256])
т.е. адрес бита в команде берется наименьшим, кратным 16
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
А снифф обмена делали? Там реально функции 0x01 и 0x02 в запросе? А то кратность 16-ти позволяет предположить, что в данном случае просто запрашиваются регистры (функцией 0x03/0x04). На ПЛК от ОВЕН, где все области памяти наложены друг на друга, такое, конечно, прокатит, но не на контроллерах с отдельной областью под coils.
Естественно делал.
Используются именно функции 01 и 02
ЗЫ.
Проект
Захват-1.png Захват-2.png
Захват-3.png Захват-4.png
Панель подключена к виртуальному слейву. По коммуникационному монитору видно, что функции именно 01 и 02
Захват-5.png
Кроме того в Data мониторе реально меняю биты в областях 0х и 1х и они отображаются на экране панели!
Последний раз редактировалось petera; 27.02.2017 в 23:00.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
По поводу группировки отдельных PSB в один регистр
Вот версия примера для СП300
Все действия сделаны элементарными арифметическими операциями над содержимым целого регистра PSB256.
Никаких обращений к отдельным битам, за исключением операций циклического сдвига, но и там анализируются только младший или старший бит регистра.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Речь идёт о работе по порту PLC/Download и использовании возможности Modbus работать с несколькими дискретными значениями
Ваш пример не подходит для этого
Ответ и правда малополезный... Будь у меня на руках панель, эти возможности я бы исследовал и самостоятельно.
Если верить википедии, в Modbus нет такого выравнивания. Также если верить ей же, то нет и требования запросить ровно 2 байта, а можно запрашивать любое количество регистров, если надо, слейв добавит байтов в ответе. Так же и запись должна работать.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Добрый вечер. Помогите разобраться новичку с панелью оператора ОВЕН СП307-Р. Создан проект объемом 9,31 mb. При попытке загрузить проект в панель вылетает сообщение переполнение psw. Уменьшая же проект до объема 8,81 mb проект загружается спокойно. Я так понимаю проблема в слишком большом объеме памяти созданного проекта. Подскажите есть ли возможность загружать более масштабные проекты в панель и как ее реализовать.
Для начала можно попробовать п. 1.7 из FAQ:
http://www.owen.ru/catalog/sensornie...sp3xx/81265010
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk