Просмотр полной версии : Вход CFC блока в виде структуры. Как подать на такой вход из двух объектов?(фото)
Добрый день!
Есть объекты, написанные на ST.
Входы и выходы объектов - это структуры.
Вопрос:
Как на языке CFC подключаться ко входу, но не ко всей структуре сразу, а к какому-либо её элементу(сигналам или вложенным структурам)?
Пример во вложении, в котором:
1. Из объекта MPUMP типа PUMPFIRE cигнал alarm из структуры StatusOut нужно передать на вход pumperr (первый элемента массива) структуры StatusIn объекта CONTROLCABINET.
2. Из объекта JPUMP типа PUMPFIRE cигнал alarm из структуры StatusOut нужно передать на вход pumperr (второй элемента массива) структуры StatusIn объекта CONTROLCABINET.
Не могу назначит на один вход два сигнала. Как это правильно сделать?
Спасибо.
На один вход два сигнала - элемент ИЛИ
На один вход два сигнала - элемент ИЛИ
Это мне известно.
В моём случае вход - это структура. Как записать значения в РАЗНЫЕ элементы этой структуры? Как подсоединять на вход CFC блока?
Напрашивается создание ещё одного блока - сборщика сигналов в структуру, аналогичную по типу с входной структурой, и уже потом подключение этой созданной структуры на вход. Но я пока не хочу в это верить, ибо это ужас.
Как то Вы все слишком сложно описываете. Если судить по картинке, то там два выхода типа BOOL и вход такой же. Вопрос был - назначить на один вход два сигнала - элемент ИЛИ и все дела.
на выходе первых блоков прописываете через точку экземпляр последнего блока и требуемое местоположение, потом просто выполняете последний блок без использования входных линий
на выходе первых блоков прописываете через точку экземпляр последнего блока и требуемое местоположение, потом просто выполняете последний блок без использования входных линий
На выходе первых блоков тоже ведь структура.
Как мне одновременно указать конкретный элемент из структуры первых блоков и конкретных элемент из структуры последнего блока? И всё это в одном выходе?
На выходе первых блоков тоже ведь структура.
Как мне одновременно указать конкретный элемент из структуры первых блоков и конкретных элемент из структуры последнего блока? И всё это в одном выходе?
писать на ST
писать на ST
Спасибо.
На ST написано ))
Но от меня хотят наглядности...))
вариантов много, промежуточная переменная например, еще код ST конвертировать в FBD
вариантов много, промежуточная переменная например, еще код ST конвертировать в FBD
Про переменную-сборщик структуры я писал уже.
А внутри CFС уже и так ST код.
Как конвертировать с FBD, подскажите, пожалуйста? И что это даст? Будут видны связи описанных на ST блоков между собой?
Вижу в меню Проект -> Перевод на другой язык -> Перевести проект, но там в Целевой язык пусто..
var_in_out ..
А можно поподробнее?
незнаю в чем там ужОс
УжОс в том, что когда dTemplate.STUFF - это крупная структура и таких структур на входе и выходе экземпляра объекта несколько и несколько самих экземпляров, то промежуточных присвоений будет много. Ручками делать не охота.
Но про этот способ я знал изначально. Другого, как я понял, нет? Ясно, спасибо. Буду думать. И руки тренировать.:D
УжОс в том, что когда dTemplate.STUFF - это крупная структура и таких структур на входе и выходе экземпляра объекта несколько и несколько самих экземпляров, то промежуточных присвоений будет много. Ручками делать не охота.
Но про этот способ я знал изначально. Другого, как я понял, нет? Ясно, спасибо. Буду думать. И руки тренировать.:D
мы точно про CFC говорим, что значит автоматизировать, нагородить цикл FOR в графическом редакторе тоже можно, но Вы вроде писали что это нужно для наглядности
мы точно про CFC говорим, что значит автоматизировать, нагородить цикл FOR в графическом редакторе тоже можно, но Вы вроде писали что это нужно для наглядности
Да, для наглядности. В приведённом Вами примере присваивается ОДИН выход и ОДИН вход. Как сделать это для НЕСКОЛЬКИХ сигналов и РАЗНЫХ структур?
нормальный ход, уже значит будут разные структуры
Если не нарушать порядок следования блоков то достаточно объявить одну структуру для выхода с блоков, если они однотипные, добавить переменную счетчик и в структуре которая будет подаваться на вход последнего блока, в массиве вместо цифры вставлять счетчик, а после прибавлять к счетчику единицу
нормальный ход, уже значит будут разные структуры
Если не нарушать порядок следования блоков то достаточно объявить одну структуру для выхода с блоков, если они однотипные, добавить переменную счетчик и в структуре которая будет подаваться на вход последнего блока, в массиве вместо цифры вставлять счетчик, а после прибавлять к счетчику единицу
Не важно разные или одинаковые. Главное, чтобы я мог:
1. Вытащить из одной структуры более 1 сигнала
2. Записать в одну структуру более 1 сигнала
Если переменные и счётчик, то это будет наглядно? Я увижу состояния всех сигналов? Я не понимаю:(
Так и работайте с конкретными полями а не с целой структурой.
Нужен носовой платок, а вы целую галантерею тягаете
PS
var_in_out
Это наименее кривой вариант, на нём и остановился.
Те сигналы, которые нужны для наглядности, продублирую из структур сразу на вход/выход объекта.
Но всё же немножко неудобно. Хочется, как всегда, чтобы было удобно.
Задача решалась достаточно просто, при этом работать как и раньше со структурами на входе и выходе можно.
Поскольку речь шла о наглядности, это можно сделать так:
В окно CFC вытаскивать экземпляр объекта без каких либо дополнительных портов.
Для отображения интересующих сигналов нужно на вход экземпляра объекта при его вызове подать сигнал из структуры.
При этом этот вход не нужно подключать, он может висеть рядом с экземпляром в окне CFC.
Если интересно, позже выложу картинку.
Николай2
24.03.2018, 13:36
А использовать блок присвоения MOVE с разрешением.
А использовать блок присвоения MOVE с разрешением.
Прочитал про MOVE в руководстве.
Не знаю, как это поможет.
И уже нет надобности, спасибо.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot