Действия раздела «Данные»
Найти объекты
Section titled “Найти объекты”Значок в палитре: •⌕ · даёт: объекты · раздел «Данные» · find-objects · нужен прогон · начинает схему
Отбирает объекты проекта по условию: свойства модели, ключи словарей, цепочки условий.
Фраза на фигуре у только что поставленного шага: найти все объекты — все подряд, условий нет
Условие, источник и порядок у «Найти объекты» и «Взять N-й» общие — отличие только в том, сколько объектов действие отдаёт. Полный разбор — на странице «Найти объекты» и «Взять N-й».
| Строка | Обяз. | Принимает | Что это |
|---|---|---|---|
| Объекты | да | объект · словарь · текст · число · да / нет | Объекты, словари или значения, среди которых ищут. |
| Имя | Что на нём окажется |
|---|---|
| Найдено | Объекты проекта, прошедшие условие. |
Настройки
Section titled “Настройки”Где искать — настройка где, по умолчанию все объекты
Источник объектов: все объекты прогона или одно семейство.
| Значение в файле схемы | На экране | Пояснение под пунктом |
|---|---|---|
все объекты | то же | весь прогон: объекты ПЛК, а устройства DevStudio — если прогон их загружал |
объекты ПЛК | то же | часть того же прогона: заведённые на ПЛК |
устройства Modbus | устройства Modbus — DevStudio | устройства Modbus DevStudio — грузит только парсинг HMI с «DS ModBus» |
устройства OPC | то же | устройства OPC DevStudio — грузит только парсинг HMI с «DS OPC Device» |
сетевые коммутаторы | то же | коммутаторы сети DevStudio — грузит только парсинг HMI с «DS Diagnostic» |
обжтайпы | то же | не прогон: обжтайпы проекта, у них свои поля |
в пришедшем | то же | не прогон, а то, что нашёл шаг выше |
карта полевых тегов | то же | не прогон: шаблоны полевых тегов на тип объекта |
уровни тревог | то же | не прогон: уровни тревог AlphaAlarms ПЛК этой строки |
глобальные объекты HMI | то же | не прогон: глобальные объекты HMI, например Severity |
данные симулятора | то же | не прогон: тех. объекты моделей ПЛК, собранные для симулятора |
модули Unimod | то же | не прогон: узлы глобального словаря Unimod |
устройства с листов MB. | устройства Modbus — ПЛК (листы MB.) | не прогон: устройства Modbus с листов MB. книги ПЛК — кадры и датчики |
Взять N-й
Section titled “Взять N-й”Значок в палитре: N⌕ · даёт: один из списка · раздел «Данные» · find-first · нужен прогон · начинает схему
Берёт из подходящих один — под указанным номером: объект, словарь или текст из списка. Номер считается с единицы.
Фраза на фигуре у только что поставленного шага: взять первый объект — условий нет
Номер считается с единицы: инженер говорит «второй порог», и вычитать единицу за него должен шаг. В GAP на этом месте стоит thresholds[num - 1] — вычитание там не про смысл, а про то, что массив считается с нуля.
Отдельного действия «взять первый» нет: оно отличалось бы одним числом. А это же действие с источником в пришедшем и без условий уже означает «взять из них первый».
До десятого номера фраза шага говорит словом: «первый», «второй», «третий»… дальше — «№ 11».
| Строка | Обяз. | Принимает | Что это |
|---|---|---|---|
| Объекты | да | объект · словарь · текст · число · да / нет | Объекты, словари или значения, среди которых ищут. |
| Номер | нет | текст | Номер значением: из ячейки, из шага выше. Не подключён — берётся настройка. |
| Имя | Что на нём окажется |
|---|---|
| Объект | Объект под этим номером среди подходящих либо пусто. |
Настройки
Section titled “Настройки”Где искать — настройка где, по умолчанию объекты ПЛК
| Значение в файле схемы | На экране | Пояснение под пунктом |
|---|---|---|
все объекты | то же | весь прогон: объекты ПЛК, а устройства DevStudio — если прогон их загружал |
объекты ПЛК | то же | часть того же прогона: заведённые на ПЛК |
устройства Modbus | устройства Modbus — DevStudio | устройства Modbus DevStudio — грузит только парсинг HMI с «DS ModBus» |
устройства OPC | то же | устройства OPC DevStudio — грузит только парсинг HMI с «DS OPC Device» |
сетевые коммутаторы | то же | коммутаторы сети DevStudio — грузит только парсинг HMI с «DS Diagnostic» |
обжтайпы | то же | не прогон: обжтайпы проекта, у них свои поля |
в пришедшем | то же | не прогон, а то, что нашёл шаг выше |
карта полевых тегов | то же | не прогон: шаблоны полевых тегов на тип объекта |
уровни тревог | то же | не прогон: уровни тревог AlphaAlarms ПЛК этой строки |
глобальные объекты HMI | то же | не прогон: глобальные объекты HMI, например Severity |
данные симулятора | то же | не прогон: тех. объекты моделей ПЛК, собранные для симулятора |
модули Unimod | то же | не прогон: узлы глобального словаря Unimod |
устройства с листов MB. | устройства Modbus — ПЛК (листы MB.) | не прогон: устройства Modbus с листов MB. книги ПЛК — кадры и датчики |
Какой по счёту — настройка номер, по умолчанию 1
Считается с единицы. Учитывается, когда вход «Номер» не подключён.
Взять поле
Section titled “Взять поле”Значок в палитре: ▤ · даёт: текст · раздел «Данные» · take-field · начинает схему
Берёт одно поле у каждого объекта или ключ у каждого словаря. Порядок сохраняется.
Фраза на фигуре у только что поставленного шага: взять у них поле …
Не то же, что «Перейти по связи»: полем достаётся то, что у объекта записано.
Значение поля отдаётся таким, какое оно есть. Колонка экселя — текст, а поле ModbusDevice — объект со своими полями, и после него законно продолжать объектными действиями. Поле-словарь отдаётся словарём целиком, поле-список разворачивается в элементы.
Опечатка в имени поля даёт пустоту на объект, а не обрыв: справочника имён нет, имя вписывают руками. А вот пустой список-поле даёт ноль значений, а не одно пустое — иначе счёт найденного сдвигался бы на единицу.
| Строка | Обяз. | Принимает | Что это |
|---|---|---|---|
| Объекты | да | объект · словарь | Объекты проекта или словари. |
| Поле | нет | текст | Имя поля значением. Не подключён — берётся настройка. |
| Имя | Что на нём окажется |
|---|---|
| Значения | Значения поля, по одному на объект или словарь. |
Настройки
Section titled “Настройки”Объекты — настройка объекты, обязательна
У чего брать поле: у пришедших по связи объектов, у строки, для которой считается ячейка, или у её ПЛК.
| Значение | Пояснение под пунктом |
|---|---|
эта строка | колонки строки, для которой считается ячейка: Units, TAG… |
ПЛК этой строки | опции ПЛК этой строки: SplitRegex, ComposeRegex, defaultTAMap… |
Поле или ключ — настройка поле, обязательна, список берётся из проекта (поля объекта)
Поле объекта или ключ словаря. Учитывается, когда вход «Поле» не подключён.
Перейти по связи
Section titled “Перейти по связи”Значок в палитре: →◇ · даёт: объекты · раздел «Данные» · follow-link
Переходит от объекта к связанным с ним: строкам обжтайпа, устройству, порогам, листу.
Фраза на фигуре у только что поставленного шага: перейти по связи «обжтайп»
Три связи из четырёх ищут по всему прогону: обжтайп подбирается по имени среди всех обжтайпов, лист — по имени листа среди всех объектов, пороги — правилом имён, перенесённым из GAP. Ничем из того, что есть в палитре, это не выражается.
Пороги приходят упорядоченными — тем же порядком, каким их сортирует GAP перед тем, как брать по номеру. Без этого «второй порог» значил бы «какой попадётся».
Подробно: Связи объекта.
| Строка | Обяз. | Принимает | Что это |
|---|---|---|---|
| Объекты | да | объект | Объекты, от которых идут. |
| Имя | Что на нём окажется |
|---|---|
| Найдено | Объекты на другом конце связи, подряд у всех пришедших. |
Настройки
Section titled “Настройки”Связь — настройка связь, обязательна, по умолчанию обжтайп
| Значение | Пояснение под пунктом |
|---|---|
обжтайп | строки листа обжтайпа: каналы, атрибуты, объявления |
устройство Modbus | устройство, к которому подключён объект; у объекта оно одно |
пороги | пороги датчика, упорядоченные так же, как в GAP |
лист | объекты того же листа-источника, включая сам объект |
Прочитать файл
Section titled “Прочитать файл”Значок в палитре: ▤ · даёт: текст · раздел «Данные» · read-file · начинает схему
Читает текстовый файл по пути, собранному шагами выше, и отдаёт его текст целиком.
Фраза на фигуре у только что поставленного шага: прочитать файл
Заведён ради MakeThresholdFeedbackText и MakeModuleDiagnosticText: у обеих текст — шаблон .jsm, лежащий рядом с шаблоном обжтайпа, и путь к нему известен только на проекте.
Пустой файл — пустота, а не пустая строка: дальше по схеме пустота проходит сама, без лишней развилки.
| Строка | Обяз. | Принимает | Что это |
|---|---|---|---|
| Путь | да | текст | Полный путь к файлу — обычно собран шагами выше. |
| Имя | Что на нём окажется |
|---|---|
| Текст | Текст файла целиком; пустой файл — пустота. |
Настройки
Section titled “Настройки”Если файла нет — настройка если файла нет, по умолчанию оборвать счёт
| Значение | Пояснение под пунктом |
|---|---|
оборвать счёт | как у GAP: ячейка без значения, в отчёте — путь |
отдать пустоту | дальше уходит пустота, её ловит «Если пусто» |