а если немного поэкспериментировать, то вы упретесь в ограничение счетчика CTN в 16 бит, отсюда и делались счетчики на 32 бита из простых элементов...
Думаю, в большинстве случаев возможностей 16-битного счетчика (65 535 часов) должно хватить. По крайней мере для того оборудования, с которым я имею дело. После такого "пробега" обычно делается капитальный ремонт. А там можно и заново отсчет начать
А можно и макрос немного дополнить и получить полноценный 32-битный счетчик моточасов (на выходе данные типа FLOAT):
6.png
Добавлен четвертый вход для предварительной записи в счетчик CTN3 "множителя" при необходимости установить после обновления программы моточасы, превышающие 65535.
Последний раз редактировалось Borserg; 26.03.2018 в 08:31.
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
e-mail: yu.revaka@owen.ru
Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ
Поясню насчёт типов данных в ПР : "внутри" используется 32х разрядный INT. Float также имеет 32 разряда, только арифметика в 4 раза медленнее.
32х разрядный реверсивный счётчик с предустановкой имеется в моём макросе задвижки.
Так-что можете не заморачиваться и считать наработку в секундах. У ПР114 (с часами) и ПР200 есть вывод секунд.
Макросы выкладывают "завернув" их в программу(.OWL сайт понимает, tpl-нет) , или заархивировав ZIP.
Не совсем понял: почему тогда сетевые переменные типа INT занимают один регистр 16 бит, а FLOAT - два, идущих подряд (32 бита)?
Спасибо, посмотрю. Но в том оборудовании, с которым я работаю, учет минут и, тем более, секунд - излишен.32х разрядный реверсивный счётчик с предустановкой имеется в моём макросе задвижки.
Так-что можете не заморачиваться и считать наработку в секундах. У ПР114 (с часами) и ПР200 есть вывод секунд.
Прилагаю .OWL.Макросы выкладывают "завернув" их в программу(.OWL сайт понимает, tpl-нет) , или заархивировав ZIP.
Макросы.owl
внутри программы у целых больше диапазон, чем у сетевых переменных в 2 разаНе совсем понял: почему тогда сетевые переменные типа INT занимают один регистр 16 бит, а FLOAT - два, идущих подряд (32 бита)?
Вам правильно сказали что внутри ОЛ тип данных INT32, на самом деле это UINT32, при выводе в сетевой переменной обрезается до UINT16, т. е. 16 младших бит!
Типы данных.PNG
Последний раз редактировалось Сергей0308; 02.02.2017 в 08:22.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
потому что один регистр в modbus это одно СЛОВО, вот и 16 бит. а float в Modbus это два идущих подряд регистра.
Вам нужно двойное слово ?, разделите в программе uint32 на два регистра а в scada склеивайте.