youengineerasu

youengineerasu

Автоматизация промышленных и домашних объектов - Программирование ПЛК - Программирование панелей оператора - Программирование SCADA Каналы на Дзен и вконтакте: https://dzen.ru/you_engineer https://vk.com/you_engineer_asu https://t.me/you_engineer_asu По всем вопросам пишите: чат: https://t.me/chat_plc Каталог проектов: https://t.me/projects_asutp почта: semgridin@yandex.ru
Пикабушник
379 рейтинг 91 подписчик 8 подписок 76 постов 0 в горячем
9

Крик души инженера АСУТП

В этой статье хочу написать своё мнение про взаимодействие заказчика и исполнителя. Зачастую бывают такие ситуации, когда договаривались «На словах». Озвучиваем сумму. Принимаемся за работу. Потом в результате получается следующее — а я не так сказал, а я не так думал, а я не так видел. Знакомая ситуация?

Приветствую всех, уважаемые читатели блога. На связи с вами Гридин Семен. Расскажу о наболевшем.

Последствия от неграмотно составленного ТЗ

За 10 лет моей практики можно на пальцах посчитать людей, которые давали грамотное техническое задание. И были потом довольны результатом. Так как работа была выполнена правильно и в срок.

Почему важно посидеть и подумать над своим проектом, хотя бы примерно изложить суть вашей задачи для инженера АСУ ТП? Да и не только АСУ ТП. Это правило действует для широкого спектра профессий, в том числе и копирайтеров, и архитекторов, и дизайнеров.

Потому что специалист «Шарит» в какой-то определённой узкой области. Допустим инженер АСУ ТП разбирается в программировании, монтаже, проектировании. И человеку сложно охватить все технологии, нюансы работы линии или станка.

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

Самые частые ситуации возникающие при неграмотном ТЗ:

  1. Неправильно подобран размер шкафа — переплата.

  2. Неправильно подобраны мощности силовых элементов

  3. Неправильно написана программа — потеря времени и поездки на объект

  4. Неправильно подобрано оборудование — не выполняет нужные функции

И чаще всего заканчивается чем? Переплатами, поездками, сдача объекта не вовремя, нервотрепка.

Правильно составленное ТЗ экономит кучу сил, энергии, нервов, времени и Денег.

Техническое задание является неким фильтром, чтобы понять готов ли человек с тобой работать или нет, готов ли он принимать участие и прикладывать какие-то усилия или нет. Имеет ли смысл вообще тратить его и своё время.

Как написать техническое задание?

Как составить Техническое задание.

При проектировании системы мы считаем количество дискретных входов(концевики, кнопки) и аналоговых датчиков(температуры и другие физ. параметры).

Потом считаем количество исполнительных механизмов(насосы, двигатели, клапана, нагреватели и т.д.)

Определяемся с фазностью(1-ф или 3-ф), напряжением питания катушек, мощностями двигателей, мощностями нагревателей.

Затем нужно составить минимальный алгоритм работы вашей системы. Можно написать от руки, порисовать картинки, циклограммы, схемы и т.д. Лучше всего если ещё пришлёте фото и видео, чем больше информации, тем лучше!

После этого определяемся, нужна ли SCADA, Архивация, панель оператора, рецептура. Нужно ли выводить данные в облако, нужна ли база данных и т.д.

Присоединяйтесь к нашему каналу в Telegram, если нужна техническая помощь или просто "початиться".

Файлы и всякая "Обучальня" находится в ВК.

Показать полностью
0

Реальная стоимость автоматики теплиц

Год назад заехал как-то к фермеру, посчитать автоматику на форточки в теплице. Теплица где-то соток 20 общей площади.

До этого делали теплицу на 5 соток, несколько лет писал ПО на теплицы. Функционала получилось много.

Я посчитал стоимость - Прибор ПР103, датчики, блок питания и работы вышли примерно около 100 т.р.

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

Ответ был простой - Дорого!

В общем я не удивился. И прикинул. Срок работы оборудование при интенсивной эксплуатации ну допустим 10 лет,

При пессимистичных прогнозах делим на 2 - 5 лет. 100 000 делим на 5х12=60 получаем 2000 р. в месяц. При условии что он отбил бы в первые два года всю сумму в лёгкую.

Как вы считаете, приемлемая цена или дорого?

Присоединяйтесь к нашему каналу в Telegram, если нужна техническая помощь или просто "початиться".

Файлы и всякая "Обучальня" находится в ВК.

8

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования

Принесли на днях оборудование Mitsubishi, я ставил этот контроллер с панелью оператора на гидравлический пресс для кирпичей. Модель этого контроллера FX5U. На нём собирали станки для развальцовки труб. Хотел сказать о нём несколько слов. Если кому интересно, напишу статью об японском контроллере.

Приветствую всех, на связи автор блога, Гридин Семен. Сегодня статья про контроллер Mitsubishi.

ПЛК Mitsubishi FX5U

Как началась история работы с данным контроллером? 10 лет назад заказчику нужно было сделать станок, в котором требовался быстрый опрос линейки перемещения с аналоговым выходом 4-20 мА. Пробовали ставить ПЛК ОВЕН, но тогда скорость опроса не соответствовала заявленной задаче — скорость опроса АЦП была 10 мс.

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Медленный аналоговый вход ПЛК создавал брак продукции. Пришлось искать другие варианты.

И наш выбор пал как раз на ПЛК Mitsubishi FX5U. Скорость опроса аналогового входа контроллера и его модуля порядка 40 мкс. Разрядность АЦП занимает 12 бит — 4095 в десятичной форме исчисления. Линейка стояла на 100 мм, то есть точность составляла 0,025 мм.

Быстродействие инструкции занимает порядка 0,032 мкс. Вот эти основные преимущества данного контроллера.

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

На борту у него есть интерфейс RS-485 (поддерживает протокол Modbus RTU), Есть 2 аналоговых входа 0-10В и один аналоговый выход.

Есть возможность расширяться модулями слева и справа. Насколько я помню есть даже поддержка веб-визуализации и облака.

Среда разработки GX Works3

Программная среда GX Works 3 к сожалению платная. Сейчас может из-за санкций её вообще невозможно достать. На самом деле очень мощный и продуманный инструмент, он находится почти вровень с CODESYS.

Вот основные её особенности:

  • Программа позволяет легко конфигурировать.

  • На одном рабочем поле могут легко уместиться несколько языков стандарта МЭК.

  • Язык ST визуально оформлен. Цифры, переменные, операторы — каждый выделяется своим цветом.

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Вот на этом скриншоте отображается сочетание LD с FBD.

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Можно написать подпрограммы, наподобие действия в CODESYS.

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Вот так выглядит среда ST.

Лайфхаки по настройке программы в GX Works3

Напишу несколько строк по конфигурации модулей и других тонких настройках, если кому нужно.

Модуль аналогового модуля в конфигурации ПЛК

Для начала необходимо добавить это модуль в конфигурацию ПЛК.

Далее после применения изменений и фиксации конфигурации  необходимо дважды кликнуть на модуль -> откроется окно его настройки (см. ниже)

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Для каждого канала необходимо выбрать его градуировку и проверить, чтобы он работал (A/Dconversionenable).

Далее сохраняем параметры и переходим в поле программирования. Справа необходимо найти библиотеку модулей (вкладка Module). Если там нет лейблов то надо и создать по правой клавише мыши.

Далее спускаемся по дереву: FX5-4AD-> FX5_4AD_1-> Monitor-> CH1->

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

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Связь ПЛК с панелью GT Mitsubishi

В настройке связи в панели ПЛК есть совпадение номера станции панели и ПЛК. Они должны отличаться.

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост
ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Число с плавающей запятой в панели оператора GT

Для того чтобы отображалось число с плавающей запятой нужно поставить галочку.

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Команды по номеру экрана с панели оператора GT

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

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

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Архивация данных на ПЛК

Архивировать на FX5 можно с помощью функции Logging function Настраивается она специальной утилитой.

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Запароливание кнопок в панели оператора GT

Нужно сделать массив в глобальной переменных и привязать его к регистрам. Далее смотрим регистр. Можно использовать Security level.

ПЛК и панель оператора Mitsubishi — Эталон промышленного оборудования Программа, Электроника, Асу, ПЛК, Программирование ПЛК, Асушник, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

Показать полностью 13
6

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

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

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

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

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

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

Адресация в китайских и японских ПЛК. Таблица регистров в Optimus Drive Программирование, Тестирование, IT, Программа, Инженер, АСУ ТП, Асушник, Отдел АСУ, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

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

  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

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

Адресация в китайских и японских ПЛК. Таблица регистров в Optimus Drive Программирование, Тестирование, IT, Программа, Инженер, АСУ ТП, Асушник, Отдел АСУ, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

Адресация в китайских и японских ПЛК. Таблица регистров в Optimus Drive Программирование, Тестирование, IT, Программа, Инженер, АСУ ТП, Асушник, Отдел АСУ, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

Адресация в китайских и японских ПЛК. Таблица регистров в Optimus Drive Программирование, Тестирование, IT, Программа, Инженер, АСУ ТП, Асушник, Отдел АСУ, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

Адресация в китайских и японских ПЛК. Таблица регистров в Optimus Drive Программирование, Тестирование, IT, Программа, Инженер, АСУ ТП, Асушник, Отдел АСУ, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

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

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

Адресация в китайских и японских ПЛК. Таблица регистров в Optimus Drive Программирование, Тестирование, IT, Программа, Инженер, АСУ ТП, Асушник, Отдел АСУ, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

Адресация в китайских и японских ПЛК. Таблица регистров в Optimus Drive Программирование, Тестирование, IT, Программа, Инженер, АСУ ТП, Асушник, Отдел АСУ, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост
Адресация в китайских и японских ПЛК. Таблица регистров в Optimus Drive Программирование, Тестирование, IT, Программа, Инженер, АСУ ТП, Асушник, Отдел АСУ, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

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

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

Показать полностью 8
5

Вопрос от подписчика - как связать EKF F100-10-R и EKF PRO-Screen 4

Приветствую, уважаемые читатели. На днях задали такой вопрос.

Добрый день! имеется плк F100-10-R от EKF это копия (плк optimus drive и соответственно панели оператора тоже) , также имеется панель оператора EKF PRO-Screen 4. у панели оператора использовал порт com1 rs485 для покдлючения к плк. параметры 485 одинаковые у панели и плк. для связи использовал разьем db9 и контакты 1 и 6 для подклюния 485 плк. не могу установить связь. между панелью и плк. индикатор COM на плк не горит я так понимаю он сигнализирует о наличии соединения.для обмена между плк и панелью использовал протокол PRO-logic. в чем моя ошибка может быть?

Как решить эту задачу?

В принципе Хайвело-подобные контроллеры это одно и то же. Главное, чтобы совпадали название. Есть у меня рабочий проект на AT16SOR и Optimus VI20.

Настройки все один в один, вы применяете только рабочие свои названия платформ.

Настройки ПЛК "Штатные" должны быть с такими настройками.

Вопрос от подписчика - как связать EKF F100-10-R и EKF PRO-Screen 4 Программа, Компьютерная помощь, ПЛК, Программирование ПЛК, АСУ ТП, Инженер, Я у мамы инженер, Telegram (ссылка), Яндекс Дзен (ссылка), ВКонтакте (ссылка), Длиннопост

У меня сейчас под рукой нет ПЛК, по идее настройки сетевых параметров должны быть здесь:

Вопрос от подписчика - как связать EKF F100-10-R и EKF PRO-Screen 4 Программа, Компьютерная помощь, ПЛК, Программирование ПЛК, АСУ ТП, Инженер, Я у мамы инженер, Telegram (ссылка), Яндекс Дзен (ссылка), ВКонтакте (ссылка), Длиннопост

Настройки панели оператора вот тут:

Вопрос от подписчика - как связать EKF F100-10-R и EKF PRO-Screen 4 Программа, Компьютерная помощь, ПЛК, Программирование ПЛК, АСУ ТП, Инженер, Я у мамы инженер, Telegram (ссылка), Яндекс Дзен (ссылка), ВКонтакте (ссылка), Длиннопост

Надо указать сетевые настройки, и адрес STATION к кому обращаться.

COM тоже разные, у меня COM2, у каждого свои пины.

Вопрос от подписчика - как связать EKF F100-10-R и EKF PRO-Screen 4 Программа, Компьютерная помощь, ПЛК, Программирование ПЛК, АСУ ТП, Инженер, Я у мамы инженер, Telegram (ссылка), Яндекс Дзен (ссылка), ВКонтакте (ссылка), Длиннопост

Смотрим в мануале, здесь с цифрой COM2 и COM3 могут быть ошибки, надо пробовать.

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

Всем пока-пока.

Показать полностью 3
4

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

Типы данных 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 выводил аварии на экран, когда авария срабатывала по уставке. Прилагаю скриншоты:

Пишем строки String в CODESYS Программа, Windows, Гайд, Программирование, Асушник, Программирование ПЛК, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

Пишем строки String в CODESYS Программа, Windows, Гайд, Программирование, Асушник, Программирование ПЛК, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

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

Пишем строки String в CODESYS Программа, Windows, Гайд, Программирование, Асушник, Программирование ПЛК, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

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

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

Пишем строки String в CODESYS Программа, Windows, Гайд, Программирование, Асушник, Программирование ПЛК, Telegram (ссылка), Яндекс Дзен (ссылка), Длиннопост

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

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

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

Показать полностью 4
5

Стоимость работы переделки отсадной машины

Приветствую всех, уважаемые друзья.

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

Вот она:

Стоимость работы переделки отсадной машины Ремонт техники, Клиенты, ПЛК, АСУ ТП, Я у мамы инженер, Поломка, Услуги, Нужна помощь в ремонте, Длиннопост
Стоимость работы переделки отсадной машины Ремонт техники, Клиенты, ПЛК, АСУ ТП, Я у мамы инженер, Поломка, Услуги, Нужна помощь в ремонте, Длиннопост
Стоимость работы переделки отсадной машины Ремонт техники, Клиенты, ПЛК, АСУ ТП, Я у мамы инженер, Поломка, Услуги, Нужна помощь в ремонте, Длиннопост

Что надо сделать?

  1. Вытащить пластину, отключить провода

  2. Демонтировать старое, поставить новое оборудование и панель оператора

  3. Написать с нуля алгоритм работы машины.

  4. Нарисовать управление на панели оператора

  5. Приехать всё поставить и наладить

Хочу узнать ваше мнение, во сколько вы бы оценили стоимость этих работ?

С уважением, Гридин Семен.

Показать полностью 3
3

Автоматика надува межпленочного в теплице

Был на реальном объекте в теплице. Хотят, чтобы автоматически работал надув.

Автоматика надува межпленочного в теплице Я у мамы инженер, Физика, Электричество, Эксперимент, Теплица, АСУ ТП

Мы изначально делали чисто цикл. таймер ставили и регулировали пуск и паузу.

Теперь появилась мысль, поддерживать давление в межпленочном пространстве.

Теперь вопросы. Эта идея реальна? И сколько Па там между плёнками?

Знатоки, отзовитесь...

Показать полностью 1
Отличная работа, все прочитано!