Просмотр полной версии : не читаются значения мощности
добрый день, помогите разобраться: к ПЛК210 подключен WB MAP3E по RS485 значения напряжения и тока читаются правильно, а вот значения мощности не читаются совсем/((( в прочем и другие значения тоже (частота и др)
59564 одни нули, хотя Modbus poll их читает
Евгений Кислов
06.03.2022, 18:48
Добрый день.
https://owen.ru/forum/showthread.php?t=28167&p=343792&viewfull=1#post343792
большое спасибо за помощь, еще есть вопрос: как правилино читать данные расположенные в двух и четырёх регистрах?
WORD2_TO_REAL?
Евгений Кислов
10.03.2022, 06:23
большое спасибо за помощь, еще есть вопрос: как правилино читать данные расположенные в двух и четырёх регистрах?
WORD2_TO_REAL?
В руководстве указано, что данные в модуле хранятся в целочисленном виде.
Сначала вам нужно превратить 2 WORD в DWORD или 4 WORD в LWORD - например, с помощью функции SWAP_DATA.
Потом вам нужно домножить получившееся значение на множитель, указанный в руководстве, и присвоить это в переменную REAL.
спасибо за подсказку! но возникли трудности с установкой OwenCommunication;
59654 что это значит? куда смотреть?
Евгений Кислов
12.03.2022, 11:52
59654 что это значит? куда смотреть?
В моей подписи - "Отладка проектов в CODESYS V3.5", п. 4.3.
частично разобрался!! большое спасибо!! правда пришлось весь проект переписать)) помогла OCL.WORD2_TO_DWORD! но остался вопрос как читать и обрабатывать переменные с 4 регистрами?
Евгений Кислов
13.03.2022, 16:21
частично разобрался!! большое спасибо!! правда пришлось весь проект переписать)) помогла OCL.WORD2_TO_DWORD! но остался вопрос как читать и обрабатывать переменные с 4 регистрами?
См. функцию SWAP_DATA.
попробовал SWAP_DATA , но так и не понял как ее использовать(( описание почти нет, видео примеров тоже... где бы посмотреть пример использования?
Евгений Кислов
17.03.2022, 17:53
попробовал SWAP_DATA , но так и не понял как ее использовать(( описание почти нет, видео примеров тоже... где бы посмотреть пример использования?
По примеру из справки WirenBoard:
https://wirenboard.com/wiki/WB-MAP3E_Data_Registers
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 ;
59734 59735
спасибо за помощь, но в CFC но это выглядит так((59765
Евгений Кислов
19.03.2022, 16:45
спасибо за помощь, но в CFC но это выглядит так((59765
В терминах CFC функция SWAP_DATA это "элемент", а не использованный вами "компоновщик" (см. панель инструментов).
И обратите внимание, что именно передается на ее входы (см. ADR(...), SIZEOF(...), имена переменных).
добрый день! за "компоновщик" спасибо!! просмотрел))) а с остальным не понял... вход массив :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; (как ив примере) остальное булевые переменные...
Евгений Кислов
21.03.2022, 16:03
добрый день! за "компоновщик" спасибо!! просмотрел))) а с остальным не понял... вход массив :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 ругается?
Евгений Кислов
21.03.2022, 17:28
59785 почему CODESYS ругается?
Посмотрите, какие типы входов у функции SWAP_DATA в описании библиотеки.
И обратите внимание, как в примере выше выглядит вызов функции:
OCL.SWAP_DATA(ADR(awTotal_AP_Energy_ch2_Modbus), ADR(lwTotal_AP_Energy_ch2), SIZEOF(lwTotal_AP_Energy_ch2), FALSE, FALSE, FALSE);
прежде чем обратиться несколько раз смотрел в библиотеку, тип данных:OCL.CAA.PVOID; OCL.CAA.SIZE; что это за тип данных я не знаю
Евгений Кислов
23.03.2022, 17:10
прежде чем обратиться несколько раз смотрел в библиотеку, тип данных:OCL.CAA.PVOID; OCL.CAA.SIZE; что это за тип данных я не знаю
Понятно.
Тогда просто сделайте так, как на скриншоте:
59839
Большое спасибо за терпение)) вроде все получилось! без вас я бы не догадался в таком формате вводить данные)))
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot