Последний раз редактировалось Евгений Кислов; 25.05.2016 в 15:51.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Спасибо, заработало.
То есть младший-старший байты местами поменяны?
Надо бы в доке указать.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Опрос через биб-ку ModbasOwenLib:МК110-4ДН4Р--МК110-4К4Р--МВ110-8А--МВ110-8ДФ--МУ110-8Р--ТРМ202--ATV312--МК110-4ДН4Р скорость 19200.Опрос идет безумно медленно, можно наблюдать в программе как переключаются шаги в case,на модуле МВ110-8А происходит вообще зависание на несколько секунд, на модулях постоянно загорается ошибка таим-ауты в модулях 5 сек, при этом на аварийных выходах Фб ноль, выкинул из 8а все переменные кроме real то-же самое, как бы все это дело разогнать и провалы убрать
Библиотека ModulsOwenLib построена на использовании групповых запросов, т.е. в любом случае с модуля будут считаны все переменные. В данном случае лучше перейти на библиотеку Modbus Master и опрашивать только те регистры, которые реально нужны. Если с какого-то модуля нужны все регистры, то лучше считывать в несколько заходов (по ~20 регистров за раз). По возможности рекомендуется увеличить скорость обмена до 115200.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Хорошо попробую, скорость поднять не получиться частотник не даст
Дак а какой смысл писать заново Ваши блоки собраны на этой бибке, я же не просто отключил выхода 8А. а пересобрал ФБ, всего 16 регистров
CASE marker OF
0: get_modbus(
Enable:=trig.Q1 , (* разрешение работы блока *)
Mode:=Modd , (*режим передачи*)
DevAddr:=Addr , (*адрес*)
FirstAddr:=RegAddr1 , (*номер регистра*)
Quantity:=2, (*количество регистров*)
ComHandle:=handle ,(*номер COM-порта*)
TimeOut:=TimeOut , (*Таймаут T#50ms*)
Buffer:=Buffer , (* буфер данных *)
Complete=>cmpl , (* скопировать признак завершения операции *)
Exception=>Err , (* скопировать регистр ошибок *)
ByteCnt=>DataSize ); (*кол-во считанных байтов *)
IF cmpl THEN
IF Err=0 THEN (*Если нет ошибок, то получаем данные из буфера*)
inp1:=0;
ptr_x:=ADR(inp1);
ptr_x^:=buffer[7];
ptr_x:=ptr_x+1;
ptr_x^:=buffer[6];
ptr_x:=ptr_x+1;
ptr_x^:=buffer[5];
ptr_x:=ptr_x+1;
ptr_x^:=buffer[4];
marker:=1;
ErrCount:=0;
ELSE
IF (ErrCount >= ErCL) THEN
marker:=1;
ErrCount:=0;
Т.е. вы все же используете библиотеку Modbus?
Т.к. раньше вы писали "ModbasOwenLib" - я подумал, что вы используете "ModulsOwenLib" (как наиболее похожую по названию).
В вашем случае я бы порекомендовал связаться с техподдержкой. На стр. 171 документа перечислены материалы, которые желательно предоставить при обращении.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Все примеры в документе иллюстрируют чтение одного канала с каждого устройства. Можно в документе как-то описать момент опроса нескольких каналов с одного устройства?
Я так понимаю, речь о примере с библиотекой Modbus - потому что при опросе через конфигуратор процесс опроса нескольких каналов не должен вызывать вопросов, а библиотека ModulsOwenLib опрашивает модули целиком.
В том случае, если нужно опросить несколько каналов модуля через библиотеку Modbus, у вас есть два варианта:
1. Считать групповым запросом все нужные данные (при условии, что нет "дырок" в карте регистров) и дальше в программе разобрать их;
2. Считывать каждый канал по отдельности. В этом случае просто посмотрите, как реализован последовательный опрос двух модулей (например, рис. 6.12) - вам необходимо сделать то же самое, только вместо опроса двух модулей у вас будет два раза опрос разных регистров одного и того же модуля.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk