Просмотр полной версии : Визуализация на СПК107
Alex_Shakhray
03.03.2023, 07:46
Добрый день. Подскажите пожалуйста как связать программу с визуальным элементом и визуализацией, например переключить экран визуализации по условию, т.е. если от датчика тревоги пришел сигнал нужно показать соответствующий экран без участия оператора.
Евгений Кислов
03.03.2023, 07:59
Добрый день. Подскажите пожалуйста как связать программу с визуальным элементом и визуализацией, например переключить экран визуализации по условию, т.е. если от датчика тревоги пришел сигнал нужно показать соответствующий экран без участия оператора.
Добрый день.
См. п. 10.3.1:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Visu_v3.0.pdf
Alex_Shakhray
03.03.2023, 09:22
Спасибо. А есть еще документация по синтаксису ST, где описаны переменные и примеры программного управления элементами визуализации?
Евгений Кислов
03.03.2023, 09:27
Спасибо. А есть еще документация по синтаксису ST, где описаны переменные и примеры программного управления элементами визуализации?
Это не касается конкретно ST, но я понял ваш вопрос.
В свободное время я работаю над большой статьей, посвященной этой теме. Думаю, к концу весны опубликую ее.
Пока что можете задавать конкретные вопросы - я постараюсь ответить на них.
Alex_Shakhray
03.03.2023, 10:06
Например, непонятно как работать со стоковым типом данных. Как реализованы сравнение строк, поиск в строке подстроки и символа, конкатенация строк.
К примеру Answer : STRING := '2';
IF Answer <> ' ' THEN
Answer := '1';
END_IF
Не работает, Answer всегда равно '2'
Евгений Кислов
03.03.2023, 10:11
Код корректный. Возможно, вы этот код нигде не вызываете?
поиск в строке подстроки
См. функцию FIND в библиотеке Standard.
конкатенация строк.
См. функцию CONCAT в библиотеке Standard.
Основные аспекты работы со строками описаны в этой статье:
https://aip.com.ru/article/codesys_rabota_so_strokami
Ну и в справке CODESYS, конечно.
Alex_Shakhray
03.03.2023, 10:49
Есть предположение, что PLC_PRG.SerialRequest не блокирующая, т.е. Answer при проверке еще не получил ответ, тогда вопрос как сделать задержку в программе типа delay(ms)
Евгений Кислов
03.03.2023, 10:53
Есть предположение, что PLC_PRG.SerialRequest не блокирующая, т.е. Answer при проверке еще не получил ответ, тогда вопрос как сделать задержку в программе типа delay(ms)
Если SerialRequest - это экземпляр ФБ из библиотеки OwenCommunication - то совершенно верно, они выполняются асинхронно.
Об этом написано в документации на библиотеку.
Насчет задержки - обычно для этого используются таймеры из библиотеки Standard.
Таймеры тоже являются неблокирующими, потому что блокирующая задержка противоречит идеологии программирования ПЛК, которые должны выполнять код циклически, со стабильным временем вызова и минимальным джиттером.
Alex_Shakhray
03.03.2023, 11:59
Спасибо, понятно.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot