Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Ищите дары леса и готовьте изысканные блюда на лесной ферме с ресторанчиками!

Грибники: дары леса

Фермы, Симуляторы, 2D

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
6
youengineerasu
youengineerasu

Адресация в китайских и японских ПЛК. Таблица регистров в Optimus Drive⁠⁠

1 год назад

В азиатских контроллерах интересная реализация программирования логических контроллеров. Этот подход взяли на вооружение многие производители ПЛК.

Чем мне нравятся подобные контроллеры. Тем что у них абсолютно прозрачная адресация регистров. Есть некая коробка с определенным набором ячеек, к которым в программе можно обращаться.

Здравствуйте коллеги. Сегодня попробуем разобраться с регистрами в ПЛК Optimus Drive (он же Haiwell). Такой же принцип соблюдается у таких производителей, как Mitsubishi, Omron, Delta.

Карта регистров

У каждого ПЛК, в зависимости от функций, своя карта регистров. В дистрибутиве PLCSoft можно найти эту таблицу.

На данном скриншоте виден весь набор регистров, которые мы можем использовать в программе.

Давайте их рассмотрим по порядку.

  1. HSC — быстрые счетчики со входов ПЛК

  2. PLS — упарвление быстрыми выходами

  3. X — физический дискретный вход

  4. Y — физический дискретный выход

  5. T — выходы таймеров

  6. С — выходы счетчиков

  7. С48-С79 — выходы 32-битных счетчиков

  8. M — промежуточные реле

  9. S — шаговые реле

  10. SM — системные регистры

  11. AI — аналоговые входа

  12. AQ — аналоговые выхода

  13. SV — системные регистры

  14. V -числовые регистры

  15. LM и LV -локальные биты и регистры

  16. P — индексные регистры

  17. I — регистры прерываний

  18. Энергонезависимые регистры и реле — T96-T127, C64-T127, M1536-M2047, S156-255, V1000-2047

Системные регистры

Таблица системных битов, можно оценить статусы работы отдельных узлов ПЛК (батареи, ком-портов, запушен контроллер или нет, состояние быстрых счетчиков и т.д.

Всё тоже самое — регистры, только числовые значения.

Статусы и состояния прерываний.

Коды ошибок и их описание.

Карта регистров Delta

Вот таким образом выглядят регистры Delta DVP.

Трудности с этими ПЛК какие, нету нормального руководства по программированию, форума, видеороликов. Вообще нету адекватной русскоязычной технической поддержки.

Когда знаешь, в принципе легко с ними разбираться, Для новичков или для людей смежных профессий тяжеловато.

На этом пока всё, если есть вопросы, пишите в комментариях.

Показать полностью 8
Программирование Тестирование IT Программа Инженер АСУ ТП Асушник Отдел АСУ Telegram (ссылка) Яндекс Дзен (ссылка) Длиннопост
0
4
youengineerasu
youengineerasu
Серия Программная среда CoDeSyS 3.5

Пишем строки String в CODESYS⁠⁠

1 год назад

Типы данных string в CODESYS требуются в реализации архивации, различных таблиц, подписей, в отображении Аварий. String это строка в программной среде.

Приветствую всех, с вами на связи автор блога, в этой статье я хочу описать работу со строками типа String в среде разработки для программируемых логических котроллеров.

Для чего нужны строки?

Есть несколько основных сфер, где они применяются:

  • визуализации (формирование таблиц рецептов, сообщений о тревогах и т.д.);

  • записи данных в файлы в понятной человеку форме (в формате CSV, JSON и т.д.);

  • реализации строковых протоколов обмена (DCON, MQTT и т.д.);

  • работы с SMS;

  • хранения паролей, серийных номеров и т.д.

Типы строк в CODESYS

Строка – это массив чисел, каждое из которых соответствует определенному символу. Соответствие между числами и символами называется кодировкой. В CODESYS присутствуют два типа строк – STRING и WSTRING. Основные характеристики типов строк

ПараметрSTRINGWSTRINGКодировкаASCIIUCS-2 (Unicode)Размер символа1 байт2 байтаПример записи литерала(важен тип кавычек)‘hello, world’“привет, мир”

Выбор типа зависит от решаемой задачи. Например, для отображения строк в визуализации контроллеров ОВЕН следует использовать только тип WSTRING. При работе с SMS удобнее применять STRING, так как при формировании AT-команд для модемов используется кодировка ASCII.

Длина и размер строки

В CODESYS при объявлении строки задается ограничение числа ее символов. Если число символов не указано, то по умолчанию используется значение 80. Ограничение максимального числа символов строки в явном виде отсутствует. Фактически длина строки ограничена только объемом памяти, выделенной под проект.

VAR
// Максимальная длина – 40 символов
// Выделенная память – 41 байт
sMessage: STRING(40) := ‘test’;
// Максимальная длина – 80 символов (по умолчанию)
// Выделенная память – 162 байта
wsTitle: WSTRING := “test”;
END_VAR

Базовые функции работы со строками

Значение строковой переменной можно присвоить не только при ее объявлении, но и в коде программы. Однако одного присваивания недостаточно. Для реализации алгоритмов требуются дополнительные операции, например, объединение нескольких строк в одну, поиск в строке нужного символа и т.д. Для этих операций используются базовые функции из библиотеки Standard. Список этих функций с кратким описанием

CONCAT (STR1, STR2)Объединяет две строки в одну

DELETE (STR, LEN, POS)Удаляет из строки заданное число символов с нужной позиции

FIND (STR1, STR2)Производит поиск подстроки в строке

INSERT (STR1, STR2, POS)Добавляет подстроку в строку с заданной позиции

LEFT (STR, SIZE)Выделяет из строки подстроку заданной длины (начиная с первого символа)

LEN (STR)Вычисляет длину строки

MID (STR, LEN, POS)Выделяет из строки подстроку заданной длины (начиная с нужной позиции)

REPLACE (STR1, STR2, LEN, POS)Заменяет в строке один фрагмент на другой (начиная с нужной позиции)

RIGHT (STR, SIZE)Выделяет из строки подстроку заданной длины (начиная с последнего символа)

Примеры использования этих функций:

sVar1 := ‘Hello, ’;
sVar2 := ‘world’;
// sVar3 теперь имеет значение ‘Hello, world’
sVar3 := CONCAT(sVar1, sVar2);
// iLen будет иметь значение 12
iLen := LEN(sVar3);

Функции из библиотеки Standard могут работать только с переменными типа STRING.
Для работы с WSTRING используется библиотека Standard64 с идентичным набором функций, имеющих префикс «W» (WCONCAT, WDELETE и т. д.).

Расширенные функции работы со строками

Важно отметить, что функции из библиотек Standard/Standard64 могут работать только со строками, длина которых не превышает 255 символов. Для работы с более длинными строками используется библиотека StringUtils. В ней содержатся функции, которые в качестве аргументов принимают не строки, а указатели на них. Кроме того, библиотека содержит дополнительные функции для перевода строк в верхний/нижний регистр, удаления пробелов и т. д.

Типы строк STRING и WSTRING предназначены для работы с разными кодировками. Иногда требуется выполнить конвертацию этих типов, например, ввести в визуализацию строку-сообщение типа WSTRING и отправить ее по SMS в виде STRING-значения. Стандартные операторы конверсии STRING_TO_WSTRING/WSTRING_TO_STRING в этом случае не подходят, так как не производят конвертации кодировок, а перекладывают содержимое памяти одной переменной в другую. Решить проблему поможет библиотека OwenStringUtils, разработанная компанией ОВЕН.

Библиотека позволяет:

  • конвертировать кодировки;

  • работать с подстроками;

  • форматировать вывод переменных типа DATE/TOD/DT/REAL

// неправильная конвертация
// wsMessage получит значение "òåñò"
wsMessage := TO_WSTRING('тест');
// правильная конвертация
// wsMessage получит значение "тест"
wsMessage := OSU.CP1251_TO_UNICODE('тест');
// sDateTime получит значение '02.04.2019 08:11:30'
dtDateTime := DT#2019-04-02-08:11:30;
sDateTime := OSU.DT_TO_STRING_FORMAT
(dtDateTime, '%t[dd.MM.yyyy HH:mm:ss]');

Большой набор функций для работы со строками можно найти в библиотеке OSCAT Basic. Часть из них повторяет функционал OwenStringUtils, но присутствуют и уникальные: например, зеркалирование строки и преобразование числа в строку с его HEX-значением.

Помимо видимых символов (букв, цифр, знаков препинания) строка может содержать спецсимволы, которые называются управляющими последовательностями. С их помощью, например, можно организовать перевод строки для вывода нескольких сообщений в одном элементе визуализации.

sMessage := ‘Один$r$nДва’;

В редакторе CODESYS для ввода спецсимволов используется знак ‘$’.

Строки и массивы

Как было сказано в начале статьи, строка представляет собой массив символов. CODESYS V3.5 позволяет осуществлять индексный доступ к строке – как к массиву значений типа BYTE (для STRING) или WORD (для WSTRING). Это удобно при работе с файлами и реализацией протоколов обмена. На рис. 6 приведен пример обработки строки в цикле FOR для определения позиций символов, разделяющих значения. Это может потребоваться при чтении информации из файлов формата .csv.

VAR
sRecord: STRING := '123;456;789';
sSeparatorChar: STRING := ';';
auiSeparatorPos: ARRAY [0..10] OF INT;
i: INT;
j: INT;
END_VAR

j := 0;
FOR i:= 0 TO LEN(sRecord) DO
IF sRecord[i] = sSeparatorChar[0] THEN
auiSeparatorPos[j] := i;
j := j + 1;
// TODO: добавить проверку
// для верхней границы массива
END_IF
END_FOR

Несколько примеров на реальных объектах

Обработка Аварий и вывод на экран

Делал для Молочного завода морозильную камеру, где нужно мониторить параметры температур, и на СПК107 выводил аварии на экран, когда авария срабатывала по уставке. Прилагаю скриншоты:

Небольшой кусок кода обработки аварии:

Лепка таблицы CSV для архивации

Код сам по себе большой, презентую часть. Если будет нужно, могу составить об этом статью, пишите в комментариях.

Как раз реальное применение функции CONCAT.

Отправка SMS через модем ПМ01

Было несколько проектов с применением данного модема, скажу честно стабильно всё работало несколько лет. Было реализовано и в CDS 2.3 и CDS 3.5.

В квадрате выделил пример применения переменной STRING.

Это пока всё. Примеры программ в телеге.

Если есть вопросы, пишите в комментариях, чтобы каждый желающий мог получить ответы.

Показать полностью 4
Программа Windows Гайд Программирование Асушник Программирование ПЛК Telegram (ссылка) Яндекс Дзен (ссылка) Длиннопост
0
0
youengineerasu
youengineerasu

Заскакивайте на огонёк⁠⁠

1 год назад

Приветствую всех, у меня есть тг-канал, в котором я выкладываю небольшие обучающие видеоролики, лайфхаки и фото монтированных шкафов автоматики.

Если интересно, заходите

Моя телега.

[моё] Монтаж АСУ ТП Асушник Отдел АСУ КИПиА ПЛК Программирование ПЛК Инженер Я у мамы инженер Текст Telegram
10
15
MZTA
MZTA
Автоматизация
Серия ПЛК

Предшественники ПЛК – К1-20, МС2102 – история создания первых отечественных АРМов⁠⁠

1 год назад

Уважаемые коллеги, с удовольствием делимся экскурсом в прошлое отечественной автоматизации и публикуем историю, рассказанную Михаилом Непомниным – начальником КБ автоматизации ЭПО «Сигнал» о создании одних из первых отечественных аппаратных и программных средств АСУ ТП.

В уже далеком 1988 году я после окончания университета и 5 лет работы в элитном цехе регулировщиком РЭА я перешел в ОМА (отдел механизации и автоматизации), в новое бюро автоматизации поверочных работ (КБ АПР сокращенно). Часть инженеров местного политехнического института калымила, внедряя нам автоматизацию проверки выпускаемой продукции. А мы были у них на подхвате и учились уму разуму или постигали тонкости автоматизации.

Продукцией же были специальные датчики давления, выпускаемые для военных – они производились двух типов. Нас этом я заканчиваю рассказ про сами датчики, поскольку это секретная продукция. А вот автоматизированные рабочие места для их проверки при выпуске секретом не являются. Про них я могу говорить свободно. Тем более, что АРМы сейчас уже не работают на выпуске, заменены на новую модификацию. Так что я даже коммерческую тайну не выдаю.

И так, в конце 1987 года создалось КБ, а в апреле 1988 года я перешел туда инженером-программистом. Вроде бы так моя должность называлась. КБ было преимущественно молодежное. Руководил им грамотный товарищ, который через полгода стал замом Главного инженера, а я стал начальником КБ.

Политех разрабатывал нам АРМы проверки и один АРМ «центральный процессор» для управления процессом и ведения архивов, как на бумажном носителе, так и в электронном виде. Женская часть КБ разбиралась с КД по проверки и помогала в языке высокого уровня ТурбоБейсик сочинять политеховцам программу центрального процессора. Вернее, разрабатывали прогу девчонки при постоянном контроле и подсказке работников политеха. А мужеска часть КБ, на тех же условиях разрабатывала в ассемблере программу для контроллера К1-20 микропроцессорной 580-й серии микросхем.

И не смейтесь над нами. Никаких Виндоус тогда еще не было, ТурбоБейсик был крутой язык и в ассемблере было не западло писать программу. Напомню, что это был далекий 1988-й год. Мы планировали писать программу центрального процессора на отечественной ЭВМ ДВК, но потом разжились IBM-ками. И если на ДВКшках мы в редкие минуты отдыха гоняли компьютерную игру Тетрис, то на IBMках начали кроме игр серьезно изучать языки высокого уровня типа Турбо- и Квикбейсика.

Поскольку я в университете прослушал курс лекций программирования на Алголе и Фортране, а также прошел практику по программированию, я тоже начал вместе с дамами нашего КБ программировать на Бейсике. А не осваивал один ассемблер для К1-20. Изучение Бейсика мне кстати очень пригодилось в дальнейшем. Ну об этом потом. А пока расскажу о составе и характеристиках контроллера К1-20. Это его типовое что ли название. Реально у нас были две опции контроллеров с шифрами МС2702 и МС2721.

На рисунках видно, чем они отличались друг от друга, но в общем и целом контроллеры были почти одинаковы.

Контроллер МС2721 с пультом

Контроллер МС2721 с пультом

Контроллер МС2102 с пультом

Контроллер МС2102 с пультом

Питание 5В было мощное – 3А. Контроллер грелся, но работал. Скажу, что мы успели поставить три АРМа в одном цехе и один в другом. Работа кипела. Собирались внедрять программу «центральный процессор» и увеличивать количество АРМ и диапазон охвата. Но (как часто в жизнь вмешивается это чертово «Но») наступила конверсия и датчики стали нужны в значительно меньших количествах, а с ними не стала нужна и наша автоматизация.

Хотел привести краткие технические характеристики контроллеров, но у меня документации давно нет. А в интернете что-то не нашел. Поэтому пишу, что помню.

Эти контроллеры содержали полноценные микропроцессорные комплекты 580-й серии. С контроллером прямого доступа к памяти, контроллерами прерываний и последовательного интерфейса. Разница была в конструкции пульта и количестве разъемов.

У МС2702 было 3 разъема, но большие. У МС2721 – 5, из которых 4 – меньшего размера, а пятый – такой, кажется, как у МС2702.

Предшественник ПЛК – программируемый контроллер МС2702

Предшественник ПЛК – программируемый контроллер МС2702

В коробочке в фольге микросхема ППЗУ для прошивки пользовательских программ. ЗИП в конденсаторную бумагу завернут, кроме картонной упаковки. Маленькая отвертка присутствует. В общем – кайф или мечта автоматизатора советских времен. Итак, переходим к основной части.

Состав АРМ:

  1. Контроллер МС2702 (2721)

  2. Блок питания контроллера ГН 09-01

  3. Вольтметр В7-28 (В7-34)

  4. Блок сопряжения

  5. Жгуты

Один тип контроллеров для потенциометрических датчиков, другой – для индуктивных. За давностью лет и начинающимся склерозом, не помню, какой для каких датчиков применялся. Зато помню, какой вольтметр для чего служил. Поскольку В7-28 мог измерять напряжение в долях от опорного, но не мог работать с переменным напряжением, он обсчитывал потенциометрические датчики.

Вольтметры В7-28 и В7-34

Вольтметры В7-28 и В7-34

А вольтметр В7-34 работал с индуктивными датчиками. Они питались от напряжений с частотой 400 Гц или 2000 Гц, и спокойно обсчитывались умеющим измерять переменку В7-34. Для потенциометрических датчиков опорное напряжение бралось со штатного блока питания ГН 09-01. Индуктивные же запитывались со специализированного блока переменного тока заводской разработки.

Блок сопряжения состоял из отдельного корпуса и платы коммутации и платы связи с вольтметром. Плата коммутации осуществляла перебор датчиков на коллекторе. Плата вольтметра программировала вольтметры и посылала команду «Пуск» при считывании данных с каждого проверяемого датчика. Корпус служил для подсоединения плат и соединения разъемов внешних жгутов.

Жаль, что у меня нет фото АРМа целиком, фото блока сопряжения и схем АРМа. Могу только по памяти изобразить функциональную или структурную схему АРМа и блока сопряжения.

Все пропало в период перестройки и дикого капитализма. И так промышленный уклад у нас в стране был не очень крепкий. А в период позднего Горбачева и Ельцина стал вообще ни в дугу.

Документацию выкидывали, оборудование расхищали, считали, что тем, кто не производит материальные ценности платить надо минималку или вообще выгонять с работы.

Хорошо сейчас процесс потихоньку налаживается.

Еще раз благодарим Михаила Непомнина за рассказ, а также дополним его историей развития Московского завода тепловой автоматики (МЗТА), а точнее кратким перечнем приборов автоматизации, также предшественников современных ПЛК, которые были созданы до событий, о которых идет речь в статье, то есть до 1988 года.

  • 1955-60 гг. – первый электронный прибор – ЭР-111-К – «КОМЕГА», дифференциальные манометры и электронные приборы регулирования – РБ-100

  • 1960-е – комплекс – КРИСТАЛЛ, регулирующий прибор импульсного действия с бесконтактным выходом – РПИБ, дифференциатор ламповый – ДЛ-Т, электронные сигнализаторы и ограничители температуры ЭСП-К, ЭОС-Т

  • 1974 – регуляторы энергетических установок – КАСКАД, КОНТУР

  • 1975 – прибор регулирующий – Р25, прибор корректирующий – К15.3

  • 1981 – прибор контроля пламени – Ф34

  • 1982 – фотодатчик низкочастотный – ФДЧ, блок управления релейного регулятора – БУ21

  • 1983 – индикатор положения – ИПУ

  • 1984 – устройства для автоматизации промышленной энергетики и теплоснабжения – Р29

  • 1986 – программируемый регулятор – ПРОТАР

  • 1987 – многофункциональные регуляторы ТЕПЛАР, ПРОЛОГ, прецизионный регулятор температуры – ПРОТЕРМ

Показать полностью 6
[моё] ПЛК Программирование ПЛК Контроллер Ретроспектива Электроника Асу АСУ ТП Асушник Отдел АСУ Арм Длиннопост
3
7
youengineerasu
youengineerasu
Серия Программная среда CoDeSyS 3.5

Автоматизация поста налива на CoDeSyS 3.5⁠⁠

1 год назад

2 года назад заказчик дал задание на автоматизацию постов налива бензина. На каждый пост своё управление. Затем все собираем в кучу в SCADA систему. К сожалению проект пришлось заморозить, так как требовалось кучу разрешительной документации. Сама программа работала «на столе». На реальном объекте испытать не удалось. Пишу статью, может для кого-то пригодятся «Фичи» в CoDeSyS 3.5.

Приветствую всех читателей сайта, с вами на связи автор — Семен. И я продолжаю писать статьи по пром. автоматизации.

Что за пост налива?

Пост налива — это некая металлоконструкция с лестницей и гибким шлангом, либо сверху, либо снизу. Этот шланг подводят к бензовозу и наполняют его топливом. Выглядит он следующим образом:

Топливо наполняется вот таким вот шлангом:

Что находится примерно в составе оборудования.

  • Насос

  • Клапан большого налива

  • Клапан малого налива

  • Массовый расходомер

  • Различные сигнализации

Какие задачи были поставлены в реализации программы:

  1. Универсальность — передача данных для верхнего уровня либо по Ethernet, либо по RS-485.

  2. Подключение различных видов массовых расходомеров — по импульсу или по Modbus.

  3. Фиксация различных аварий и защит и запись в аварийный журнал.

  4. Запуск программы по месту или удаленно.

  5. Различные клапана подачи топлива, либо два клапана либо регулирующий кран.

Управление постом налива реализовывали на базе ПЛК200 с применение CoDeSyS 3.5.

Программа на CoDeSyS 3.5

Ну начнем с того, что я разбивал все процессы и задачи на подпрограммы — чтобы потом легче было находить косяки при отладке.

Дерево проектов выглядит примерно так:

В основной программе создан подраздел действие (ACT), сюда я записываю различные преобразования данных, передачу данных и привязку физических входов-выходов.

Тело программы (PLC_PRG) с логикой.

И различные функциональные блоки и функции. Аварии(Avarii_post) и Регулирующий кран(kran)/

Опрос модуля ввода аналогового, панели оператора и массового расходомера по интерфейсу RS-485.

Обязательно ручной режим, включение насосов, задвижек, клапанов, кранов и т.д.

Расчет расхода сделал примерно таким, без учета цены импульса. Знаю, что код кривоват, если есть варианты получше, подскажите, как написать?

Выбор режима для расхода и задвижки делал через CASE.

Запуск пошаговой программы реализован через CASE. При отладке наглядно показано, где программа остановилась и по какой ПРИЧИНЕ.

Обработчик стоповой кнопки, все прописано, когда, куда и что должно остановиться.

Обработчик аварий и отправка сообщений через массив.

Аварийная ситуация и что должно произойти.

Ставили ещё маленькую панель оператора, вот такая была менюшка:

Ну и что предполагалось быть в мнемосхеме Master SCADA 3.12. Ставили именно её.

На этом я заканчиваю, если будут вопросы, пишите.

Показать полностью 13
Электрика Электричество ПЛК Программирование ПЛК АСУ ТП Отдел АСУ Асушник Я у мамы инженер Длиннопост
0
3
youengineerasu
youengineerasu
Серия OwenLogic

Как задать уставку таймеру в Owen Logic?⁠⁠

1 год назад

Появляются задачи, когда нужно на экране ПР200 или ПР205 или ПР225 задать доли секунды или доли минуты.

На примере покажу, как это сделать.

Программа для вычисления времени и передачи в ФБ

Заходим в программу Owen Logic, возьмем пример ПР200.

После этого добавляем переменную типа Float. Изначально в таймер задаются значения в миллисекундах. Если нам нужны минуты, то нужно преобразовать сначала в секунды, а потом в минуты. Получаем такое интересное число 60 000. Переменную умножаем на это число и подаем в блок таймера.

Таким образом можем ввести минуты с долями. Часто просят сделать секунды с долями. Потому что для работы автомата задержка с целочисленной секундой бывает много. Если нужны секунды с долями, то умножаем просто на 1000.

Результат:

Настройка экрана

Для настройки экрана заходим в менеджер экранов.

Добавляем блок на экран и присваиваем переменную.

На этом я заканчиваю, всем пока-пока.

Показать полностью 3
Программа Компьютерная помощь АСУ ТП Асу Отдел АСУ Асушник КИПиА ПЛК Программирование ПЛК Я у мамы инженер Гифка Длиннопост
9
8
youengineerasu
youengineerasu
Серия OwenLogic

Сравнение чисел с плавающей запятой в Owen Logic⁠⁠

1 год назад

Пишу этот пост в основном для новичков, которые вот вот начинают осваивать программируемое реле и ПО для них.

Начнем с простого сравнения чисел с плавающей запятой.

Создаем проект и добавляем необходимые элементы.

Для сравнения чисел с плавающей запятой нужны элементы с приставкой f.

Операция Вх1 > Вх2.

Операция Вх1 < Вх2.

Операции Вх1 ≥ Вх2 и Вх1 ≤ Вх2, к сожалению среда позволяет делать только с целочисленными значениями. Чтобы выполнить в целочисленном варианте, я просто умножаю на 100 перевожу в целочисленный и сравниваю.

Если знаете как сделать с плавающей точкой, напишите в комментариях.

Показать полностью 2
Программирование Полезное Разработка АСУ ТП Асушник КИПиА ПЛК Программирование ПЛК Инновации Программа Гифка
1
9
youengineerasu
youengineerasu
Серия Программная среда CoDeSyS 3.5

Codesys 2.3:Запуск насоса на CFC⁠⁠

1 год назад

Требуется запустить центробежный насос, который должен проработав 3 секунды выключиться и, кроме того, необходимо вести учет числа включений. простой запуск механизма осуществляется на Codesys 2.3.

Приветствую всех дорогие читатели, на связи Гридин Семен. Запускаю серию статей совсем простых программ, как раз для начинающих.

Конфиг входов и выходов и программа

Перед программированием работы насоса нужно сконфигурировать входы/выходы ПЛК, для этого одному из дискретных входов присваиваем значение «Pusk», а одному из дискретных выходов значение «Nasos».

Для управления работой насоса и учета числа включений потребуются: элемент счетчик CTU, элемент таймер TP и переменная «Counter».

Кнопка «Пуск» устанавливает значение «1» на переменной «Pusk», которая включает одновременно счетчик CTU1 и таймер TP1. Число включений суммируется и выводится в переменную «Counter» с выхода CV счетчика. А с выхода таймера TP1 устанавливается булевская переменная «Nasos», которая управляет дискретным выходом ПЛК в зависимости от времени установленного на входе PT таймера, в данном случае это 3 секунды.

Визуализация установки

Для создания визуализации пуска насоса нужно создать новый объект визуализации на закладке «Визуализации» организатора объектов, разместить на форме элемент «Кнопка», пару прямоугольников для изображения трубопровода, еще 1 эллипс и прямоугольник для насоса, отдельно прямоугольник для создания надписи с количеством включений насоса.

Кнопку «Пуск» нужно в разделе «Конфигурирование элемента – Категория – Ввод – Переменная-кнопка» связать с переменной «Pusk», которая в свою очередь связана с дискретным входом ПЛК. Изображение насоса сконфигурировано в разделе «Конфигурирование элемента – Переменные – Изм. Цвета», нужно вписать переменную «Nasos», а также установить обычный (серый) и тревожный (зеленый) цвета. Прямоугольник для вывода числа включений насоса на панели конфигурирования элемента связан с переменной «PLC_PRG.Counter» в разделе «Конфигурирование элемента – Переменные – Выв_текста».

На этом заканчиваю, всем спасибо, пока-пока.

Показать полностью 3
Сборка Электроника Инженер Я у мамы инженер ПЛК Программа АСУ ТП Асушник Отдел АСУ
5
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии