Добрый день.
Начал осваивать панель СП307. Подключил ТРМ 210 к нему.
Считываю показание с ТРМ и пытаюсь сделать float.
WORD tek_temp_read=0;
WORD dpt=0;
DWORD t1=0;
DWORD t2=0;
float tek_temp=0.0;
Read(PLC, 1, MODBUS_RTU_REG_4X, 1, 0, TYPE_WORD, &tek_temp_read);
Read(PLC, 1, MODBUS_RTU_REG_4X, 513, 0, TYPE_WORD, &dpt);
t1=tek_temp_read;
t2=dpt;
tek_temp=DWord_2_Float(t1)/(10.0*DWord_2_Float(t2)); (dpt<>0)
*(float*)(PSW+256)=tek_temp;
И этот код не работает. В SP300_help нет описания преобразования word в float. Как это правильно сделать?
В цифровом дисплее ставлю тип word и формат float отображает 22.0 вместо 22,1. Если ставить тип dword и формат float, то 0.00.
Заработал такой вариант:
Read(PLC, 1, MODBUS_RTU_REG_4X, 1, 0, TYPE_WORD, &tek_temp_read);
Read(PLC, 1, MODBUS_RTU_REG_4X, 513, 0, TYPE_WORD, &dpt);
t1=tek_temp_read;
t2=dpt;
tek_temp=DWord_2_Float(t1)/(DWord_2_Float(t2)*10.0);
*(float*)(PSW+256)=tek_temp;
И отображение тоже заработало![]()
А сразу значение float прочитать из ТРМ не судьба?
Захват-1.png
Код:float tek_temp; Read(PLC, 1, MODBUS_RTU_REG_4X, 4105, 0, TYPE_DWORD, &tek_temp); //PV - 0x1009; 0x100A Float32 *(float*)(PSW+256)=tek_temp;
Последний раз редактировалось petera; 03.10.2020 в 20:07.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Не посмотрел, что есть дублирование значения еще и во float. Спасибо ваш вариант работает.float tek_temp;
Read(PLC, 1, MODBUS_RTU_REG_4X, 4105, 0, TYPE_DWORD, &tek_temp); //PV - 0x1009; 0x100A Float32
*(float*)(PSW+256)=tek_temp;
А все таки есть адекватный вариант преобразования WORD во Float (может понадобиться в будущем там где нет дублирования)?
Последний раз редактировалось zealus; 05.10.2020 в 09:46.
Еще одна проблема.
В ТРМ написано:
Вложение 51247
Я пытаюсь записать параметр DPt, который имеет тип Int16.
Write(PLC, 1, MODBUS_RTU_REG_4X, 513, 0, TYPE_WORD, w_val); Использует 6 функцию и соответственно ТРМ выдает ошибку функция не поддерживается. Тут все понятно.
Writes(PLC, 1, MODBUS_RTU_REG_4X, 513, 1, w_val); Использует тоже 6 функцию и ошибка та же.
Writes(PLC, 1, MODBUS_RTU_REG_4X, 513, 2, w_val); использует уже 10 функцию, но ТРМ выдает некорректные данные, потому что пытаюсь записать 2 регистра.
Как записать 10 функцией 1 регистр как того требует ТРМ?
Связь со мной: 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
После выполнения - в регистрах PSW300-301 значение 16.50.Код:WORD IntValue = 11; *(float*)(PSW+300) = IntValue * 1.5;
Связь со мной: 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
Добрый день. Уважаемые коллеги, прошу направить на нужный путь. Впервые мне пришлось работать с ПЛК, а конкретно с ПЛК 160МО, и панелью оператора СП307Р. И то и другое устройство находятся в пути и к концу этой недели должны быть у меня. Я готовлюсь к их изучению, и пока той информации которую нашел на оф. сайте ОВЕН мне достаточно, но есть один вопрос: я не могу понять где прописаны адреса регистров ПЛК. Прошу подсказки. Заранее благодарен.
Добрый день.
Посмотрите учебное видео, пожалуйста: https://youtu.be/yJkwRU33I80
Связь со мной: 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