Состояние импорта переменных

При нажатии на клавишу F10 или щелчке левой кнопкой мыши на области экрана, относящейся к подсказке функциональной клавиши F10 (10 МЕНЮ), осуществляется вызов меню дополнительных операций.

В результате выбора из меню строки СОСТОЯНИЕ ИМПОРТА будет выполнена операция просмотра информации о выполнении импорта переменных во всех контроллерах. Для вывода информации используется редактор NotePad, пример данных представлен на рисунке.

Формат вывода информации о выполнении импорта переменных в контроллере:

  [<имя контроллера>]
  ПрП = <номер задачи>, число импортируемых переменных = <количество>
или  
  ПрП = <номер задачи>, импортируемых переменных нет>
  NAME = <идентификатор> STATE = <сообщение> DATE = <данные>,
где <имя контроллера> - логическое имя узла в соответствии с файлом конфигурации tc.cfg;
  <номер задачи>

-

номер задачи; задается числом в диапазоне 0 ... 254 и однозначно определяет задачу в группе других задач для данного контроллера;
  <количество>

-

количество импортируемых переменных для данной задачи, выполняемой в данном контроллере;
  <идентификатор>


-


идентификатор импортируемой переменной, аналогичный заданию переменной в левой части оператора присваивания описателя импортируемых данных IMPORT;
  <сообщение>

-

содержит информацию о результате выполненного импорта переменной с указанным идентификатором;
  <данные> - содержат информацию о принятых в ходе импорта переменной значениях.

Информация о выполнении импорта переменных выводится для каждого имеющегося узла контроллеров, в узле для каждой задачи, функционирующей в контроллере, выводится полный список всех выполненных операций импорта переменных. Ниже приведены возможные сообщения о выполнении импорта переменных:

Сообщение
Причина возникновения
Код ошибки
"нет проблем" Переменная найдена; IMPORT_OK
"имя не найдено" Переменная не найдена, ошибка задания идентификатора переменной; IMPORT_NAME1
"имя не найдено" Поле структуры не найдено, в структуре отсутствует поле указанным именем; IMPORT_NAME2
"индекс за пределами массива" Индекс превышает размер указанного массива; IMPORT_IND1
"индекс за пределами массива" Индекс поля структуры за пределами массива; IMPORT_IND2
"неизвестный номер PRP" Неизвестный номер задачи, нет выполняемой задачи с заданным номером; IMPORT_PRP
"импортируется структура, а не переменная" Искомый элемент структура, а обращение к нему как к простой переменной; IMPORT_VAR
"импортируется переменная, а не структура" Искомый элемент простая переменная, а обращение к нему как к структуре; IMPORT_STRUCT
"недопустимый тип имени" Тип имени не SECTION, discrete, char, int, long, float, string, timer, analog или analog_alm; IMPORT_TYPE
"переменная не содержит указанный атрибут" Несоотвествие типов переменных, переменная не содержит указанный атрибут; IMPORT_ATTR
"импортируется не строка" Искомый элемент не строка, строковой переменной присваивается значение отличное от string; IMPORT_STRING
"нет связи с контроллером" Отсутствует связь с контроллером по сети; IMPORT_LINK
"преобразование типа без потери точности" Выполнено преобразование типа без потери точности, преобразование выполняется при несовпадении типов, если целой переменной типа char или int присваивается значение типа int, long или float, не превышающее ее максимально допустимое значение; IMPORT_CONV
"преобразование типа с потерей точности" Выполнено преобразование типа с потерей точности если целой переменной типа char или int присваивается значение типа int, long или float, превышающее ее максимально допустимое значение; IMPORT_PREC
"импортируется не технологический тип" Импортируемая переменная не технологического типа; IMPORT_TEHNO
"переменная не является импортируемой" Идентификатор не является импортируемой переменной, например, задан идентификатор функции; IMPORT_NO
"состояние импорта пока не определено" Состояние импорта пока не определено, отсутствует соединение. IMPORT_UNDEF

Формат вывода принятых значений импортируемых переменных аналогичен формату начальной инициализации значений в соответствии с типом импортируемой переменной.

Например, значения импорта переменных типа timer будут представлены как:

  NAME = tTimeI STATE = нет проблем              DATE = {Value=0ms Run=PLUS}
NAME = tTimeJ.Run STATE = нет проблем    DATE = {Value=01h00m00s000ms Run=STOP}
NAME = tTimeMasA[2] STATE = нет проблем DATE = {Value=10s000ms Run= MINUS}

Например, значения импорта переменных типа int и long будут представлены как:

  NAME = iIndex_J[2] STATE = нет проблем   DATE = 4
NAME = iIndex_J[19] STATE = нет проблем DATE = 12
NAME = lCounter STATE = нет проблем       DATE = -2147483648
NAME = lCounterJ STATE = нет проблем     DATE = 3600000
NAME = lDataM[12] STATE = нет проблем   DATE = -50000
NAME = sDs3[7].lIs STATE = нет проблем   DATE = 915926

Например, значения импорта переменных типа float будут представлены как:

  NAME = fData STATE = нет проблем            DATE = 2.30259
NAME = fDataJ STATE = нет проблем          DATE = 2.71828
NAME = fMas[2] STATE = нет проблем         DATE = 2.30259
NAME = sDs5.fMs[1] STATE = нет проблем DATE = 3.14159

Например, значения импорта переменных типа char и string будут представлены как:

  NAME = cSymbol STATE = нет проблем       DATE = 83
NAME = cStrMas[23] STATE = нет проблем DATE = 56
NAME = sStrBuf STATE = нет проблем         DATE = "Строка символов"
NAME = sDs2.sIs STATE = нет проблем      DATE = "WAWAWA"

Например, значения импорта переменных типа discrete будут представлены как:

  NAME = dKH200[10] STATE = нет проблем DATE = {Value=1 Blk=0 Usr=7 Fault=5}
NAME = dKH100.Value STATE = нет проблем DATE = {Value=0 Blk=1 Usr=0 Fault=7}
NAME = dKH200[5].Usr STATE = нет проблем DATE = {Value=0 Blk=1 Usr=3 Fault=5}
NAME = sNasos.dKH.Value STATE = нет проблем DATE = {Value=1 Blk=0 Usr=0 Fault=0}

Например, значения импорта переменных типа analog и analog_alm будут представлены как:

  NAME = aL100.Fault STATE = нет проблем DATE = {Value=1.22 Blk=1 Usr=3 Fault=0}
NAME = sN[15].aT.Value STATE = нет проблем DATE = {Value=2.7182 Blk=1 Usr=3 Fault=0}
NAME = aaLM100[9].Blk STATE = нет проблем DATE = {Value=145.0 LoLo= 130.5 Lo=140.0
Hi=150.0 HiHi=161.0 Blk=0 Usr=7 Fault=0}
NAME = aaLM100A[9] STATE = нет проблем DATE = {Value=11.325 LoLo=-3.40282e+038
Lo=-3.40282e+038 Hi=3.40282e+038 HiHi=3.40282e+038 Blk=0 Usr=4 Fault=0}