Работа с сокетами в Codesys V3.5 #1

Приступаем к работе с сокетами в среде разработки Codesys. Это первая статья, в которой будет создан сокет, установлено TCP соединение и произойдет передача данных. ПЛК выступает в роли клиента и весь код создан с использованием стандартных библиотек. Сокеты Библиотека Codesys…

Читать далееРабота с сокетами в Codesys V3.5 #1

Юнит тестирования в АСУТП на базе ПЛК и CODESYS. EnUnitTest.

В этой статье будет юнит тестированиеи его принципы; интерфейсы и абстрактные классы, что означает наследование и много ООП в Codesys; принципы написания тестируемого кода и примеры плохого кода от меня, а также EnUnitTest — библиотека тестирования. Многие спорят: стоит ли…

Читать далееЮнит тестирования в АСУТП на базе ПЛК и CODESYS. EnUnitTest.

Проблемы АСУТП

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

Читать далееПроблемы АСУТП

Опрос множества функциональных блоков. Codesys 3.5

Имеем: Много одинаковых объектов управления. Задача: Надо опрашивать все блоки. Многие подумают про массив функциональных блоков или про функция и массив структур, или еще что-то. Мы же пойдем по сложному пути. У нас есть какой-то функциональный блок со своей логикой.…

Читать далееОпрос множества функциональных блоков. Codesys 3.5

Codesys. Объектно-ориентированное программирование на ПЛК. Часть 7. Принцип разделения интерфейсов и принцип инверсии зависимости.

Настало время для разбора двух последних принципов дизайна, которые использует объектно-ориентированное программирование. принцип разделения интерфейсов, который нам позволяет иметь более гибкие классы и принцип инверсии зависимости, который позволяет избежать жесткого связывания компонентов. Они также работают и для ПЛК, в том…

Читать далееCodesys. Объектно-ориентированное программирование на ПЛК. Часть 7. Принцип разделения интерфейсов и принцип инверсии зависимости.

Программирование ПЛК на Codesys. Bit c Bool.

Сегодня я поставил для себя точку в свое сравнении переменной типа Bit с типoм BOOL. Так что я расскажу что сколько занимает место в структурах и расскажу как, по моему мнению, лучше мапить данные в среде Codesys. Размеры Bit и…

Читать далееПрограммирование ПЛК на Codesys. Bit c Bool.

Codesys. Объектно-ориентированное программирование на ПЛК. Часть 6. Принцип подстановки Барбары Лисков

Продолжаем тему различных принципов проектирования классов и в целом про объектно-ориентированное программирование на ПЛК в среде Codesys. Сегодня на повестке дня принцип подстановки Лисков. Мы рассмотрели принцип единственной ответственности, а также принцип открытости/закрытости Что же такого интересного сформулировала Бараба Лисков?…

Читать далееCodesys. Объектно-ориентированное программирование на ПЛК. Часть 6. Принцип подстановки Барбары Лисков

Я против SCADA систем без автобусов.

Действительно я против построение SCADA так как их строят сейчас. Я против того функционала, который им пытаются приписать и что на них пытаются реализовать. В этой статье я представлю свое видение современных систем, поговорим об отдельных узлах в системе, посмотрим…

Читать далееЯ против SCADA систем без автобусов.

Codesys. Объектно-ориентированное программирование на ПЛК. Часть 5. Принцип открытости/закрытости.

Написание кода при ООП, отличается при обычном процедурном программировании. Существует определенные принципы дизайна кода, которые позволяют создавать легко сопровождаемый, удобочитаемый, массово применяемый код — это SOLID. Эти принципы относятся к дизайну ваших модулей, а в нашем случае функциональных блок и…

Читать далееCodesys. Объектно-ориентированное программирование на ПЛК. Часть 5. Принцип открытости/закрытости.

Codesys. Объектно-ориентированное программирование на ПЛК. Часть 4. Принцип единственной ответственности.

Написание кода при ООП, отличается при обычном процедурном программировании. Существует определенные принципы дизайна кода, которые позволяют создавать легко сопровождаемый, удобочитаемый, массово применяемый код — это SOLID. Эти принципы относятся к дизайну ваших модулей, а в нашем случае функциональных блок и…

Читать далееCodesys. Объектно-ориентированное программирование на ПЛК. Часть 4. Принцип единственной ответственности.