This is topic запись произвольных сообщений в журнал ОТ in forum Редактор проекта TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/32/t/000858.html

Posted by попов с (Участник № / Member № 8204) on :
 
Здравствуйте!
существует необходимость записывать произвольные сообщения в журнал ОТ

по инструкции это можно сделать через канал 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
будет в ОТ писаться строка из словаря
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2