1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Биты и байты в hmi alarms

Ответить
Аватара пользователя

Автор темы
John88
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 28 сен 2017, 14:13
Имя: Артем
Благодарил (а): 1 раз

Биты и байты в hmi alarms

Сообщение John88 »

Здравствуйте!
У меня появился еще один вопрос. И снова по HMI Alarms.
В 14 портале дискретные алармы с плк в панель передаются битами внутри двухбайтовых слов. Из-за этого получается такая дилемма:
1. либо мы используем цифровые индексы внутри слов (типа variable_name.%X0, variable_name.%X1 и т.д.) что делает программу совсем не читаемой для человека
2. либо мы используем булевы переменные с "хорошими" названиями, а потом заталкиваем их в слова. Но это двойная работа.
Есть ли в тиа портале возможность давать переменным дополнительные псевдонимы? Например имея переменную variable_name типа word, дать читаемое символьное имя её отдельным битам.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1621
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 70 раз
Поблагодарили: 190 раз

Биты и байты в hmi alarms

Сообщение petr2off »

Есть еще 3 я возможность, которую Вы не упомянули. Называется структурные ТЭГи, из PLC идет слово, а в структурном тэге Вы имеете 16 переменных, У меня в структурном тэге даже несколько слов свернуты. Ну и стандартный alarm вполне нормально с ними работает.
Т.е. NDC01AP001 - это у меня структурный ТЭГ, который описывает насос. А скажем NDC01AP001.Sts_ON - признак того, что он включен.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Биты и байты в hmi alarms

Сообщение Михайло »

petr2off, набор битов можно засунуть в некоторую структуру одним махом функцией Serialize, обратное разваливание структуры в набор битов - Deserialize. Об этом речь?
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1621
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 70 раз
Поблагодарили: 190 раз

Биты и байты в hmi alarms

Сообщение petr2off »

Нет. В последних версиях ПО есть такое понятие - пользовательские типы данных. В них создается структура. например sts_pump.
Структура состоит из элементов, которые имеют различные типы. Например битовый тип. Соответственно, элемент имеет атрибуты - битовое и байтовое смещение. Скажем я создаю элемент sts_pump.s_on - битовый, признак включения насоса, sts_pump.s_off - битовый, признак выключеного насоса, sts_pomp.njob - вещественный - текущие обороты насоса. задаются атрибуты. Например байтовый у первых 2-х 0, битовый 0 и 1 соответственно. у вещественного байтовый будет 2 (предыдущее слово состояние занимает например 16 бит или 2 байта). битовое 0 (оно все 4 байта занимает). Далее - если заводится структурные ТЭГи этого типа. Например pump01,pump02 ...
и соответственно я могу уже использовать элементарные ТЭГи pump01.s_on, pump02.s_on...
Под использованием я имею виду и прямое связывание и работа в скриптах

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Биты и байты в hmi alarms

Сообщение Михайло »

Портал? Только v14? Только в скриптах WinCC?
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1621
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 70 раз
Поблагодарили: 190 раз

Биты и байты в hmi alarms

Сообщение petr2off »

Насколько мне известно, структурные ТЭГИ поддерживаются в портале с V11. а в WinCC с V6. Слово "только" мне не понятно. речь шла о hmi alarms. Какие еще решения Simens по hmi Вы имеете в виду ?
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Биты и байты в hmi alarms

Сообщение megavolt86 »

John88 писал(а): 1. либо мы используем цифровые индексы внутри слов (типа variable_name.%X0, variable_name.%X1 и т.д.) что делает программу совсем не читаемой для человека
2. либо мы используем булевы переменные с "хорошими" названиями, а потом заталкиваем их в слова.
Если у вас анлим в тэгах то можно же булевую переменную привязать в алармы.
По мне так очень удобный инструмент - ссылка на конкретный бит в слове, надо только привыкнуть)))
Я например создаю группу отдельную "alarms" в hmi_tags в ней хранятся все тэги с алармами (двойные слова), затем сами сообщения заполняю в свойстве самого тэга, так запутаться вообще не вариант, главное не забыть про перестановку байтов)))
Тем кто после меня придет редактировать проект должны разобраться при такой конструкции алармов
:ext_secret:

Strohmann
осмотрелся
осмотрелся
Сообщения: 141
Зарегистрирован: 08 ноя 2010, 14:03
Имя: Владимир
Страна: Россия
город/регион: Новосибирск
Благодарил (а): 9 раз
Поблагодарили: 8 раз

Биты и байты в hmi alarms

Сообщение Strohmann »

Как делаю я - 2 слова: Sw_HMI_MSG - слово триггеров сообщений [биты 7-CHK_dis, 5 - Underflow,4-HiHi, 3-Hi, 2-Lo,1-LoLo,0-Overflow]
Sw_SET_CHK_ACK - Слово включения проверки и подтверждения сообщений [7-CHK, 4-HiHi, 3-Hi, 2-Lo,1-LoLo][7 - CHK_dis, 5 - Underflow,4 - HiHi, 3 - Hi, 2 - Lo, 1 - LoLo, 0 - Overflow]. В Sw_HMI_MSG используется только 1 байт для формирования сообщений. В Sw_SET_CHK_ACK старший байт используется для включения проверки канала и включения порогов, младший - для подтверждения сообщений, потом сравнением с байтом сообщений формируется звуковая сигнализация.

Вроде и экономия 1 тэга на слиянии байта подтверждения и байта включения проверки, но не слишком удобно получается при программировании HMI нужно помнить про смещение в 1 байт.

Нужно попробовать метод Петрова.
Аватара пользователя

Автор темы
John88
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 28 сен 2017, 14:13
Имя: Артем
Благодарил (а): 1 раз

Биты и байты в hmi alarms

Сообщение John88 »

petr2off писал(а): Есть еще 3 я возможность, которую Вы не упомянули. Называется структурные ТЭГи, из PLC идет слово, а в структурном тэге Вы имеете 16 переменных, У меня в структурном тэге даже несколько слов свернуты. Ну и стандартный alarm вполне нормально с ними работает.
Т.е. NDC01AP001 - это у меня структурный ТЭГ, который описывает насос. А скажем NDC01AP001.Sts_ON - признак того, что он включен.
Вот этот способ кажется самым красивым.
Структурными тегами мы и до этого пользовались. Но как скормить такой тег в hmi alarms?
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1621
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 70 раз
Поблагодарили: 190 раз

Биты и байты в hmi alarms

Сообщение petr2off »

Стандартный alarms кушает нормально. Элемент структурного ТЭГа - это обычный ТЭГ, который вполне вяжется с ним. Завтра для примера экранов накидаю.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1621
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 70 раз
Поблагодарили: 190 раз

Биты и байты в hmi alarms

Сообщение petr2off »

Картинки, иллюстрируют использование структурных ТЭГов в alarm
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

Автор темы
John88
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 28 сен 2017, 14:13
Имя: Артем
Благодарил (а): 1 раз

Биты и байты в hmi alarms

Сообщение John88 »

petr2off, большое спасибо за ответ. Я возьму этот способ на вооружение.
Но меня больше интересует как правильно работать с тегом NDB01CPЗ001_WST (меркер с адресом 103 из вашего примера) на стороне ПЛК в тиа портале 14. Alarm logging портальной wincc признает только биты входящие в теги типа word. Было бы неплохо, как в вашем примере, иметь структурный тег из 16 поименованных бит, а в HMI Alarms передавать вордовскую переменную с тем же адресом, что и у структурного тега.
Однако я не могу найти как сделать такой финт ушами.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1621
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 70 раз
Поблагодарили: 190 раз

Биты и байты в hmi alarms

Сообщение petr2off »

Ну тут я на данный момент помочь не смогу. У меня такой проблемы нет, потому что на PLC у меня крутится ISAGRAF. И все срастается достаточно спокойно. Слово состояние аналоговой переменной, обрабатывается соответствующими ФБ и выставляются нужные биты. Т.е. на уровне PLC я с этими битами не работаю, я их тупо пихаю в Modbus регистры, а в HMI они уже подхватываются автоматически.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Биты и байты в hmi alarms

Сообщение Михайло »

John88 писал(а): Однако я не могу найти как сделать такой финт ушами.
Зацените функции переноса данных Serialize/Deserialize, которые работают со структурами (Struct). Допустим есть тэг Petya типа Word, который пришел с панели. Нужно переместить биты из этого тэга в структуру Vasya, где каждый бит имеет свое имя. Функция Serialize выполняет этой действие.
Функция Deserialize выполняет обратное действие.
Serialize-Deserialize.png
1. Можно к Petya добавить тэг Kolya типа Word, а в структуру Vasya добавить еще 16 бит. И эти функции будут перебрасывать сразу 32 бита, наращивать структуру можно сколь угодно.
2. Структура может содержать не только биты, но и другие типы, если это имеет смысл.

P.S. Вообще я ударно использовал эти функции, чтобы принять большое количество байт из шины CAN и затем разместить данные в структуры с удобным собственным именем и типом данных.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

Вернуться в «ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)»