PDA

Просмотр полной версии : Настройка ТРМ10 + СПК107 в codesys



mcv
10.11.2025, 13:22
Здравствуйте.

Надеюсь задаю вопрос в подходящей ветке форума. Занимаюсь автоматизацией совсем недавно, поэтому извиняюсь за некорректные формулировки.

Суть проблемы: делаю HMI на базе СПК107 в codesys. Ряд устройств подключены по протоколу RS485. С датчиком влажности ПВТ100 проблем не возникло, все читается и отображается штатно. Но при считывании данных с ТРМ10 (USB, ТРМ10-Щ5.У3.РТ.RS) возникли нестыковки. Связь СПК107 и ТРМ10 есть, идет прием данных. Проблема в типе данных от ТРМ10 - FLOAT, а, как я понял, в codesys такой тип переменных не поддерживается. В разделе "соотнесение входов/выходов устройства modbus" автоматически проставляется тип word. И вроде как даже в таком формате удалось считать данные: в разделе "канал modbus slave" поставил под нужным номером регистра длину 2.

В итоге - на входе (например значения температуры с подключенного к ТРМ10 термопреобразователя сопротивления) имеется следующая картина:
1) Из документации к ТРМ10 я беру адрес регистра:
86676

2) В настройках канала modbus slave ставлю длину 2 (с длиной 1 данные не считываются):
86677

3) Во время работы ТРМ10 имеется такая картина:
86678

С основного регистра 0х1009 приходит значение 1 - цифра, которая меняется раз в 3-4 секунды на, как мне кажется, случайное значение без очевидной закономерности.
С подрегистра 0х100А приходит значение 2 - оно прямо коррелируется со значением температуры на дисплее ТРМ10. При изменении температуры на десятую долю градуса оно изменяется на 1 (27.1 = 16856, 27.2 = 16857 и т.д.).

Подскажите пожалуйста, нигде ли я не ошибся в настройках и возможно ли считать значение float с ТРМ10 в среде codesys более простым путем? Если нет, то как в codesys соотнести входящие значения регистра 0х100А со значениями температуры для вывода на экран СПК107?

Евгений Кислов
10.11.2025, 13:35
Добрый день.


Занимаюсь автоматизацией совсем недавно


возможно ли считать значение float с ТРМ10 в среде codesys более простым путем?

Проще всего воспользоваться готовым шаблоном опроса:
https://owen.ru/forum/showthread.php?t=27889


как в codesys соотнести входящие значения регистра 0х100А со значениями температуры для вывода на экран СПК107?

Вопрос сводится к "как из 2 WORD сделать REAL?".
Это поясняется здесь в п. 2:
https://ftp.owen.ru/CoDeSys3/98_Books/CodesysMemoryManipulation.pdf

mcv
10.11.2025, 13:39
Добрый день. Спасибо за помощь! Попробую вариант с шаблонами

UPD: Спасибо! с шаблонами все работает

mcv
01.12.2025, 18:57
Добрый день. Можете еще помочь со следующим вопросом: подключаю по RS485 ряд устройств (не одновременно, по очереди). Одни устройства работают нормально и нареканий нет (ТРМ10, ПВТ100), а другие (ПД150, МК110-224) - имеют слишком большую задержку при отображении сигнала. Например величина давления с ПД150 обновляется на СПК раз в 7-15 секунд, на самом приборе скорость обновления порядка милисекунд. Кабель- МКЭШ 3*0.35, отрезок около 25 см (резистор включен, оплетка на заземлении). Приборы подключаю по очереди. Задержка проявляется у конкретных приборов. Настройки подключения (скорость, четность и т.д.) проверил несколько раз - все соответствует.

В чем может быть причина этого?

kondor3000
01.12.2025, 19:00
Добрый день. Можете еще помочь со следующим вопросом: подключаю по RS485 ряд устройств (не одновременно, по очереди). Одни устройства работают нормально и нареканий нет (ТРМ10, ПВТ100), а другие (ПД150, МК110-224) - имеют слишком большую задержку при отображении сигнала. Например величина давления с ПД150 обновляется на СПК раз в 7-15 секунд, на самом приборе скорость обновления порядка милисекунд. Кабель- МКЭШ 3*0.35, отрезок около 25 см (резистор включен, оплетка на заземлении). Приборы подключаю по очереди. Задержка проявляется у конкретных приборов. Настройки подключения (скорость, четность и т.д.) проверил несколько раз - все соответствует.

В чем может быть причина этого?

Всё от настроек зависит, гадать мы не научились пока. Выкладывайте то, что сильно тормозит, скринами или проектом.
На столе и 25 см кабеля не нужны резисторы и экранированный кабель.
Если вы добавили в один проект всё сразу, а включаете по 1 прибору, то так и будет тормозить.

mcv
01.12.2025, 19:29
Всё от настроек зависит, гадать мы не научились пока. Выкладывайте то, что сильно тормозит, скринами или проектом.
На столе и 25 см кабеля не нужны резисторы и экранированный кабель.
Если вы добавили в один проект всё сразу, а включаете по 1 прибору, то так и будет тормозить.

Спасибо за совет, исключил из компиляции неиспользуемое и заработало нормально)

mcv
02.12.2025, 20:03
Добрый день.





Проще всего воспользоваться готовым шаблоном опроса:
https://owen.ru/forum/showthread.php?t=27889



Вопрос сводится к "как из 2 WORD сделать REAL?".
Это поясняется здесь в п. 2:
https://ftp.owen.ru/CoDeSys3/98_Books/CodesysMemoryManipulation.pdf

Добрый день.

Опять возникли сложности - на этот раз с записью параметров на ТРМ10 (USB, ТРМ10-Щ5.У3.РТ.RS) по RS485. Получается считывать реальное значение температуры (1) и заданное значение температуры (SP1) на ТРМ (2). Но при попытке изменить заданное значение через СПК107 оно не принимается ТРМ. На изображении строка (3): параметр задан на 50С, в HMI (СПК) и в code sys это значение отображается, но на ТРМ остается по прежнему 30:
87033

Таже проблема с параметром "Режим работы прибора" (3)

Проверил настройки ТРМ через конфигуратор - защита от редактирования значений переменных отключена. Адреса регистров в документации и в шаблоне прибора в codesys соответствуют. По индикации ТРМ и в codesys тоже все штатно.

Подозреваю что дело в строке (4) - "записать параметры". Тип переменной - BIT. В комментарии к ней указано - "По переднему фронту происходит запись режима работы, уставок и мощностей".
Какую переменную следует привязать к этой строке?

kondor3000
02.12.2025, 20:43
Привяжите булевскую переменную, через R_Trig или что бы увидеть работу через таймер TP на 0.5 сек.