Возможно ли аргументу экрана типа HANDLE программно передать значение или только через ГЭ?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Непосредственно из программы управлять аргументом экрана типа HANDLE нельзя.
Надо делать это с использованием пересылки(каналом CALL.MOVE).
Для уточнения пришлите запрос на адрес техподдержки.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Ответ почтой.
Posted by vyusupov (Участник № / Member № 7171) on :
спасибо заранее.
Posted by vyusupov (Участник № / Member № 7171) on :
добавлю - что передача параметров в тренд через HANDLE выглядит красиво и работает корректно - спасибо.
Posted by vyusupov (Участник № / Member № 7171) on :
Posted by vyusupov (Участник № / Member № 7171) on :
Нужно в программе перебрать 4*16 параметров - (OPC HDA)- числовой канал, взять значение и передать в SQL. попробовал сделать через HANDLE - никак "Е0043 Неверный аргумент операции" про пересылку каналом .MOVE - недопонял как.
подскажите как проще реализовать перебор из программы которая будет выполнятся по расписанию... спасибо заранее.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Используйте "Специальные функции в ST-программе"
//чтение атрибута канала (целое со знаком, 4 байта)
DINT getAttributeI(UDINT ch_id, UINT attr_id)
//чтение атрибута канала (вещественное, 4 байта)
REAL getAttributeF(UDINT ch_id, UINT attr_id)
//установка атрибута канала (целое со знаком, 4 байта)
//установка атрибута канала (вещественное,4 байта)
setAttributeF(UDINT ch_id, UINT attr_id, REAL value)
Целечисленные функции для работы с метками времени. Вещественные функции - для значений каналов FLOAT.
Считывайте из атрибутов 45 и 0 каналов FLOAT и записывайте в соответствующие аргументы канала CALL.SQL.
Аргументы канала CALL.SQL в поле атрибутов индексируются, начиная с 1000: ARG_000 - attr_id = 1000, ARG_001 - attr_id = 1001, и т.д.
Posted by vyusupov (Участник № / Member № 7171) on :
Спасибо большое. со значениями получается. но - как менее ресурсоемко для системы реализовать ожидание выполнения запроса числового канала OPC HDA?
TI_from = dt#2017-05-16-10:00:00; SetAttributeI(137,45,TI_from); SetAttributeI(137,3,0); kkk = 0; While kkk == 0 do kkk= GetAttributeI(137,3); End_While;
конструкция While do - сильно завешивает систему. есть ли аналоги "матрицы состояния"? спасибо большое за ответ.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :