PDA

Просмотр полной версии : Опрос ТРМ138 по RS-485 ( протокол OWEN )



a_sergeevich
10.02.2013, 18:32
Всем доброго.
Изучаю по-тихоньку ПЛК, в наличии есть ТРМ138 и ПЛК-150. Решил я попытаться считать с помощью ПЛК-150 из ТРМ138 по RS-485 значение температуры ( т.к к трм138 подключен один датчик тем-ры ). Написал програмку для этого, но значение почему-то не считывается. И error прыгает то 0 то 38, значение PORTS выделено красным и написано INVALID:0. Настройки порта совпадают в приборе и в программе. Может я, что-то делаю не так, но что не пойму никак, т.к с портом RS-485 да и с другими пытаюсь работать впервые.
П.С. Почему использую протокол OWEN, просто в моём приборе параметр в котором можно выбрать протокол, отсутствует, поэтому предпологаю, что по умолчанию используется именно OWEN.
Сам проект прилагаю.
Температуру пытаюсь считать с 4 канала, так он обозначен на приборе и в рэ, а по описанию библиотеки owenNet там каналы нумеруются с 0, а не с 1. Пробовал и 3 и 4 ставить, значение никакое не считывается, т.е всё время равно 0. Поэтому не могу разобраться, то ли я не то что-то считываю, то ли с портом какие-то проблемы. Помогите пожалуйста.
Настройки RS-485 в приборе:
параметры уровня PL-4
Скорость обмена: 115200
Длина слова данных: 8
Контроль по четности отсутствует
Кол-во стоп битов: 1
Длина сетевого адреса: 8
Базовый адрес прибора: 16
Кол-во фильтров сообщений: 0
Программа писалась для ПЛК-150-U-L
Сам ТРМ138 выпущен в 2007 году.

Пантелеев Дмитрий
11.02.2013, 10:12
Здравствуйте. Попробуйте прочитать значения через конфигурацию ПЛК. Проект для чтения 2ух температур прилагаю.

a_sergeevich
11.02.2013, 17:33
Через конфигурацию не хочет читать, но я изменил в своей программе параметр Cnt на тот, который у вас т.е rEAd и всё заработало, но число он считывает в формате 2.291396е+008, подскажите как его преобразовать в удобоваримый вид ? При изменении температуры это число тоже меняется, что говорит о том, что это нужная мне температура.
Вот, что получилось.

a_sergeevich
14.02.2013, 18:19
Уважаемые, специалисты, посмотрите, что у меня не так с опросом трм138 ?
Сделал скрин работы программы опроса и на нём видно в каком виде отображается температура, это правильно или нет, если да то как её привести в читаемый вид ?

capzap
14.02.2013, 18:56
Уважаемые, специалисты, посмотрите, что у меня не так с опросом трм138 ?
Сделал скрин работы программы опроса и на нём видно в каком виде отображается температура, это правильно или нет, если да то как её привести в читаемый вид ?

А там намекнуть какая температура в самом приборе в этот момент была нельзя что ли? Может подойдет простое изменение байт местами

a_sergeevich
14.02.2013, 21:13
температура была 22 градуса где-то. Как изменить байты местами ? Я когда программировал МК то там всё было проще и понятнее, считывал младший байт и старший из регистров того же таймера, потом просто соединял их и получал нужное число. Как это сделать в ПЛК, что-то не могу понять, буду признателен за подсказку, можно с примером на ST.
Прилагаю ещё один скрин, на нём показания соответствуют температуре 22.4 градуса.

capzap
14.02.2013, 23:58
там еще разобратся надо, какого типа переменная приходит, в документации на конфигуратор должно быть описано, их четыре вида для реалов вроде бы. Кстати если через библиотеку, то в её описании точно есть выбор типа принимаемой переменной. Это я все про протокол ОВЕН

a_sergeevich
15.02.2013, 18:31
Сейчас перечитал описание библиотеки, там указано, что для приёма считаного значения используется тип REAL в программируемых параметрах трм138, указано, что значение температуры состоит из двух слов, младшее и старшее типа FLOAT, но как это применить я не могу понять, как можно считать отдельно младшее и отдельно старшее слова по протоколу ОВЕН ?
Спецы из Овена упорно молчат и не хотят разъяснить мне как быть или указать, что я делаю не так.

capzap
15.02.2013, 22:27
можно попытатся просмотреть библиотеку оскат, там найти функции начинающиеся на SWAP_BYTE тогда возможно станет ясно