Здравствуйте! существует необходимость записывать произвольные сообщения в журнал ОТ
по инструкции это можно сделать через канал CALL.string в его аргументы (без привязок) нужно вносить сообщения но в журнале ОТ появляется только имя канала CALL.string и его кодировка
как бы само сообщение в журнал отправить (напрмие о открытии клапана)? на сам канал уже повешен словарь - там выводятся другие сообщения а более одного словаря на канал не повесить (как я понял)
Posted by Nico (Участник № / Member № 5342) on :
-2 словаря нельзя повесить на один канал -по какой причине нельзя использовать целочисленный канал со словарем для записи в ОТ состояния клапана
Posted by попов с (Участник № / Member № 8204) on :
здравствуйте! у дискретного канала (Rin_Byte(2)) уже висит словарь с обезличенными сообщениями ("канал сработал") и они успешно летят в ОТ. Но необходимо еще сделать персонифицированные сообщения (типа "клапан с газом отрыт" "клапан с азотом открыт" "прудувка газом начата". вот и надо эти сообщения по тем же каналам, где уже привязан словарь - тоже направить в ОТ.
Posted by Nico (Участник № / Member № 5342) on :
доп канал CopyFrom залинкованный на R_in у которого другой словарь
Posted by попов с (Участник № / Member № 8204) on :
а если с контроллера приходит сообщение в виде значений аналогового выходного канала и, в зависимости от значения (от 1 до 20, целочисленного) - необходимо в журнал ОТ направлять текстовое сообщение - как бы на стороне трейсмоуд это дело организовать?
Posted by попов с (Участник № / Member № 8204) on :
вроде типовая обычная задача - передача сообщений в ОТ о невидно типового решения вроде как такая программа должна быть PROGRAM VAR_INPUT Rin_Float_4__30_1_R : REAL; END_VAR VAR_INOUT ARG_001 : STRING; END_VAR VAR VAR_000 : STRING := сработал AI1.1 LL; END_VAR VAR VAR_001 : STRING := сработал AI1.2 HH; END_VAR VAR VAR_002 : STRING := сработал AI1.3 LL; END_VAR VAR VAR_003 : STRING := сработал AI1.4 LL; END_VAR VAR VAR_004 : STRING := сработал AI1.4 HH; END_VAR VAR VAR_005 : STRING := сработал AI1.5 LL; END_VAR VAR VAR_006 : STRING := сработал AI1.5 HH; END_VAR VAR VAR_007 : STRING := сработал AI4.2 LL; END_VAR VAR VAR_008 : STRING := сработал AI4.3 LL; END_VAR VAR VAR_009 : STRING := сработал AI3.2 LL; END_VAR VAR VAR_010 : STRING := сработал AI2.1 HH; END_VAR VAR VAR_011 : STRING := сработал AI2.2 HH; END_VAR VAR VAR_012 : STRING := сработал AI2.3 LL; END_VAR VAR VAR_013 : STRING := сработал AI2.3 HH; END_VAR VAR VAR_014 : STRING := сработал AI2.4 LL; END_VAR VAR VAR_015 : STRING := сработал AI2.4 HH; END_VAR VAR VAR_016 : STRING := сработал AI5.4 HH; END_VAR VAR VAR_017 : STRING := сработал DI1.1; END_VAR VAR VAR_018 : STRING := сработал DI1.2; END_VAR VAR VAR_019 : STRING := сработал DO40.1; END_VAR VAR VAR_020 : STRING := сработал DO4.9; END_VAR
if Rin_Float_4__30_1_R = 1 then ARG_001 = VAR VAR_000 END_IF if Rin_Float_4__30_1_R = 2 then ARG_001 = VAR VAR_001 END_IF if Rin_Float_4__30_1_R = 3 then ARG_001 = VAR VAR_002 END_IF if Rin_Float_4__30_1_R = 4 then ARG_001 = VAR VAR_003 END_IF if Rin_Float_4__30_1_R = 5 then ARG_001 = VAR VAR_004 END_IF if Rin_Float_4__30_1_R = 6 then ARG_001 = VAR VAR_005 END_IF if Rin_Float_4__30_1_R = 7 then ARG_001 = VAR VAR_006 END_IF if Rin_Float_4__30_1_R = 8 then ARG_001 = VAR VAR_007 END_IF if Rin_Float_4__30_1_R = 9 then ARG_001 = VAR VAR_008 END_IF if Rin_Float_4__30_1_R = 10 then ARG_001 = VAR VAR_009 END_IF if Rin_Float_4__30_1_R = 11 then ARG_001 = VAR VAR_010 END_IF if Rin_Float_4__30_1_R = 12 then ARG_001 = VAR VAR_011 END_IF if Rin_Float_4__30_1_R = 13 then ARG_001 = VAR VAR_012 END_IF if Rin_Float_4__30_1_R = 14 then ARG_001 = VAR VAR_013 END_IF if Rin_Float_4__30_1_R = 15 then ARG_001 = VAR VAR_014 END_IF if Rin_Float_4__30_1_R = 16 then ARG_001 = VAR VAR_015 END_IF if Rin_Float_4__30_1_R = 17 then ARG_001 = VAR VAR_016 END_IF if Rin_Float_4__30_1_R = 18 then ARG_001 = VAR VAR_017 END_IF if Rin_Float_4__30_1_R = 19 then ARG_001 = VAR VAR_018 END_IF if Rin_Float_4__30_1_R = 20 then ARG_001 = VAR VAR_019 END_IF if Rin_Float_4__30_1_R = 21 then ARG_001 = VAR VAR_020 END_IF
END_PROGRAM но сами сообщение в виде локальных переменных не компилируются да и как эти сообщения дальше приземлить в канал CALL.STRING с дальнейшей передачей в журнал ОТ ?? техподдержка может посоветовать решение??
Posted by Nico (Участник № / Member № 5342) on :
сделать HEX канал (формата DEC ) привязать к нему словарь писать ему во вход число от 1 до 20 будет в ОТ писаться строка из словаря