добрый день, помогите разобраться: к ПЛК210 подключен WB MAP3E по RS485 значения напряжения и тока читаются правильно, а вот значения мощности не читаются совсем/((( в прочем и другие значения тоже (частота и др)
Вид для печати
добрый день, помогите разобраться: к ПЛК210 подключен WB MAP3E по RS485 значения напряжения и тока читаются правильно, а вот значения мощности не читаются совсем/((( в прочем и другие значения тоже (частота и др)
Вложение 59564 одни нули, хотя Modbus poll их читает
спасибо помогло!)))
большое спасибо за помощь, еще есть вопрос: как правилино читать данные расположенные в двух и четырёх регистрах?
WORD2_TO_REAL?
В руководстве указано, что данные в модуле хранятся в целочисленном виде.
Сначала вам нужно превратить 2 WORD в DWORD или 4 WORD в LWORD - например, с помощью функции SWAP_DATA.
Потом вам нужно домножить получившееся значение на множитель, указанный в руководстве, и присвоить это в переменную REAL.
спасибо за подсказку! но возникли трудности с установкой OwenCommunication;
Вложение 59654 что это значит? куда смотреть?
частично разобрался!! большое спасибо!! правда пришлось весь проект переписать)) помогла OCL.WORD2_TO_DWORD! но остался вопрос как читать и обрабатывать переменные с 4 регистрами?
попробовал SWAP_DATA , но так и не понял как ее использовать(( описание почти нет, видео примеров тоже... где бы посмотреть пример использования?
По примеру из справки WirenBoard:
https://wirenboard.com/wiki/WB-MAP3E_Data_Registers
Вложение 59734 Вложение 59735Код:PROGRAM PLC_PRG
VAR
// привязываем к компоненту Modbus
awTotal_AP_Energy_ch2_Modbus: ARRAY [0..3] OF WORD := [16#B4DF, 16#0DFF, 16#0000, 16#0000];
// промежуточное значение в целочисленном виде
lwTotal_AP_Energy_ch2: LWORD;
// итоговое значение с плавающей точкой
lrTotal_AP_Energy_ch2: LREAL;
END_VAR
OCL.SWAP_DATA(ADR(awTotal_AP_Energy_ch2_Modbus), ADR(lwTotal_AP_Energy_ch2), SIZEOF(lwTotal_AP_Energy_ch2), FALSE, FALSE, FALSE);
lrTotal_AP_Energy_ch2 := TO_LREAL(lwTotal_AP_Energy_ch2) * 0.00001 ;
спасибо за помощь, но в CFC но это выглядит так((Вложение 59765
добрый день! за "компоновщик" спасибо!! просмотрел))) а с остальным не понял... вход массив :awTotal_AP_Energy_ch2_Modbus: ARRAY [0..3] OF WORD := [16#B4DF, 16#0DFF, 16#0000, 16#0000];, выход:lrTotal_AP_Energy_ch2: LREAL;и размер переменной:lwTotal_AP_Energy_ch2: LWORD; (как ив примере) остальное булевые переменные...
Вложение 59785 почему CODESYS ругается?
прежде чем обратиться несколько раз смотрел в библиотеку, тип данных:OCL.CAA.PVOID; OCL.CAA.SIZE; что это за тип данных я не знаю
Понятно.
Тогда просто сделайте так, как на скриншоте:
Вложение 59839
Большое спасибо за терпение)) вроде все получилось! без вас я бы не догадался в таком формате вводить данные)))