Связь со мной: 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
Поставьте после цифры пробел:
"Выдержка 1 "
Насчет задержки получения данных - возможно, это связано с конкретным проектом (например, если ПЛК опрашивает много регистров - так как групповые запросы в конфигурации не поддержаны) или чем-то еще.
Если вы отправите проекты для ПЛК и панели на support@owen.ru - мы постараемся вам помочь
Последний раз редактировалось Евгений Кислов; 14.12.2018 в 07:01.
Связь со мной: 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
Я полагаю, что цикл контроллера зависит от того, сколько кода реализовано в программе.
На СП310 перестает работать переходы между экранами.
Помогите пжл,
Мне надо взять Float он же real, со слейв модуля с адресом 20, по смещению 4 (МВА8, температура в канале 1)
и записать ее:
- в панель по адресу 256.
- в другой слейв (плк150) по адресу 60.
Верен ли нижеследующий макрос?
WORD ArrValue[2];
READ(PLC, 20, MODBUS_RTU_REG_4X, 4, 0, TYPE_DWORD, &ArrValue);
*(float*)(PSW+256)=ArrValue;
WRITE(PLC, 1, MODBUS_RTU_REG_4X, 60, 0, TYPE_DWORD, ArrValue);
И почему в "директоре" нет никакой проверки синтаксиса?
А почему сразу не написать так
ЗЫ.Код:float fValue; Read(PLC, 20, MODBUS_RTU_REG_4X, 4, 0, TYPE_DWORD, &fValue); *(float*)(PSW+256)=fValue; Write(PLC, 1, MODBUS_RTU_REG_4X, 60, 0, TYPE_DWORD, fValue);
Как оказалось у функции Write()
BOOL Write (PortName, SlaveID, DeviceTypeReg, Adr, 0, DataType, Var);
тип данных для переменной Var определен как DWORD
по этому если записать так
то для fValue будет выполнено неявное преобразование типа float --> DWORD и в результате, если fValue=123.456 в ПЛК отправится 123Код:Write(PLC, 1, MODBUS_RTU_REG_4X, 60, 0, TYPE_DWORD, fValue);
Правильно будет так
или так, если использовать макрос Float_2_DWordКод:Write(PLC, 1, MODBUS_RTU_REG_4X, 60, 0, TYPE_DWORD, *(float*)&fValue);
Код:float fValue; Read(PLC, 20, MODBUS_RTU_REG_4X, 4, 0, TYPE_DWORD, &fValue); *(float*)(PSW+256)=fValue; Write(PLC, 1, MODBUS_RTU_REG_4X, 60, 0, TYPE_DWORD, Float_2_DWord(fValue));
Последний раз редактировалось Мимоход; 20.12.2018 в 22:00.
Шёл я как-то раз мимо и ...
Мимоход спасибо.
В том числе смущает что в общих описаниях на Модбас написано что 4Х это функция ЧТЕНИЯ, а в примерах Овна она и для записи.
В тех же примерах для чтения аналога используется и 3х...
Новичок в этих делах, помогите...
Ну наверно написано 0х4 - функция ЧТЕНИЯ, а не 4Х это функция ЧТЕНИЯ
Похоже у Вас путаница с понятиями протокола ModBus
4Х, 3Х, 1Х и 0Х -это четыре зоны (области) данных (переменных)
1Х - Discrete Inputs (начиная с 10001), или область дискретных входов (входных битов)
0Х - Coils (начиная с 00001), или область дискретных выходов (выходных битов)
3Х - Input Registers (начиная с 30001), или область входных регистров (аналоговых входов)
4Х - Holding Registers (начиная с 40001), или область выходных регистров (аналоговых выходов)
А вот функции (Чтение, запись и др.) часто записываются в виде 0х1, 0х2, 0х3, 0х4
Чувствуете разницу в написании 4Х и 0х4 ?
Просто символ 'х' в записи вида 0х1 означает, что число 1 записано в шестнадцатеричном формате
Для новичка популярно здесь https://sites.google.com/site/fieldb...odbuseducation
После прочтения статьи будет понятна эта табличка
Команды ModBus:
Последний раз редактировалось Мимоход; 21.12.2018 в 00:19.
Шёл я как-то раз мимо и ...