Последний раз редактировалось Сергей0308; 17.02.2020 в 10:51.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Сергей0308 часть из перечисленного относится к платным модулям, либо в зубы C# и делайте сами бесплатно либо формулами либо свои модули пишите. Ядро системы бесплатное и с открытым исходным кодом.
Опрос хоть в цикле, причем нативных драйверов в RapidScada несколько больше, чем в других, но и использовать OPC тоже можно.
Как минимум, чтобы раз в месяц что-то создавалось в автоматическом режиме без нажатий кнопок оператором нужен платный Модуль Автоматического управления.
у Simp Ligth можно взять так же Демо полноценную на час работы. По сути та же Enterprise
https://owen.ru/forum/showthread.php...l=1#post320574
Обновил свой вариант, теперь с окном расшифровки
Решил пойти по пути petera в плане зачем хранить количество секунд от 1970 года, если можно просто упаковать дату и время в 2 регистра (не переменных а именно регистра по 16 бит) и уперся в сохранение времени. Если Дату можно впихнуть в регистр, использую года 0-99 без тысячелетий и столетий, то вот сохранить время в 24-х часовом формате с секундами не получается.... требуется 17 бит.
Как исхитриться чтобы впихнуть в один регистр время с секундами ? может быть с какими-то ограничениями. Есть у кого идеи ?
Легко! Эту классную идею подкинул сергей0308. Просто берите секунды, к ним плюсуйте минуты умноженные на 100, к этому добавляйте часы, умноженные на 10000
В итоге вы получите число формата ччммсс. Если в один регистр лезть ещё с месяцем и годом не хотите, то можно сделать разделитель в виде нуля, а на экране по прикрыть его знаком" :"
59 сек + 59 мин*100 + 23 часа*10000 = и где тут 16 бит ? - вообще 18 бит..... - сорри, действительно 0 упустил
Не, дата в отдельном регистре 16 бит, без столетий влазит. столетия и тысячелетия не проблема организовать в Scada из текущего времени
Последний раз редактировалось melky; 12.04.2020 в 10:55.
capzap число получится 235959 а не то, что вам калькулятор показывает... часы умножаются на 10000 а не на 1000
Хорошо, вы умножите часы на 1000, а теперь в Scada обратно как ? что истина будет, чтобы гарантированно получить именно то время, которое зафиксировано единственное и в одном экземпляре ?
Пока придумал только как уместить в 16 бит с шагом секунд, равным 2... тогда влазит
Умножать часы на 1000 не вариант, вы не сможете определить точное время из двух и более совпадений и никакая математика не поможет...
Последний раз редактировалось melky; 12.04.2020 в 10:53.
ну не я же нолик пропустил в посте, я специально процитировал его
понятно что этот способ не подойдет, но есть же опыт других, сименс например складывает время в вещественное число, слева от запятой дата, справа время, в этом случае эта формула будет работать, естественно умножая часы на 10000.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
ага, заметил. поправил пост... В принципе идея с шагом секунд 2 подойдет... уже лучше, чем ничего. зато ресурсы ПР освободятся от вычислений UTC времени. Конечно оно более универсально, так как любая Scada сможет прочесть....
Сименс не предлагать, он сильно захромает 19 января 2038 года с их то ошибкой....
Как вариант избавиться от года, если в Scada будет передаваться последняя ошибка, можно год воспринимать как текущий. Соответственно в архивах БД будут правильные года записаны. Тогда float нормально подойдет да и просто 32-х битная переменная.
А для отображения в ПР можно и с годом показывать, внутри переменные 32-х битные и влезет все.
Последний раз редактировалось melky; 12.04.2020 в 11:12.