Tag Archives: ПЛК 100

Пример работы ОВЕН ПЛК с ICMP протоколом.

Введение

Пример предназначен для демонстрации функционирования протокола ICMP на  ОВЕН ПЛК посредством посылки стандартной команды PING с ПЛК на любое удаленное устройство, подключенное к сети. Функционально программа   выполняет 1000 циклов в каждом из которых с помощью команды SysSockSendTo отсылается ICMP пакет с типом PING и кодом 0х00. После этого по прошествии задержки в 0.003с вызывается функция приема SysSockRecvFrom. Далее производится сравнивнение содержимго переданного и принятого пакета, и если проверяемое устройство корректно ответило, то  инкрементируется  флаг успеха suces, в противном случае флаг неудачи faul.

Проект, реализующий данный пример находится в файле «ISMP_TEST_PING.pro». При написании программы вызываются функции стандартной библиотеки SysLibSockets.

Типовая аппаратная конфигурация

Программа  испытывалась с двумя ОВЕН ПЛК 100 при подключении через сеть Ethernet.

При посылки 1000 запросов с временем ожидания 0.003с. ответ был получен на 970 запросов, что говорит о быстрой работе TCP/IP стека на ПЛК. При работе с другими устройствами время ожидания ответа необходимо увеличивать (например PC под управлением Windows) .

Описание программы

Программа функционирует через UDP сокеты, где при его создании необходимо указывать ICMP тип, в номере порта старший байт обозначает тип ICMP пакета, младший код пакета и IP адрес удаленной машины. Далее с помощью стандартных команд SysSockSendTo и  SysSockRecvFrom можно обмениваться данными с удаленной машиной через ICMP протокол.

Описание работы с ICMP протоколом

(*Программа опроса {Ping-запроса} через ICMP протокол*)

CASE web_stat OF

0:

(*Участок выполняемый при старте программы*)

web_stat:=1;

sock_adr.sin_addr:=16#0A00065F;

(*IP Адрес опрашиваемого устройства {создается сокет на опрашивающем устройстве}*)

sock_adr.sin_family:=SOCKET_AF_INET;

(*Стек протоколов TCP/IP*)

sock_adr.sin_port:=16#0800;

(*Старший байт- Тип ICMP пакета {08 — Ping} младший байт- код ICMP пакета { 0- Ping}*)

sock_adr1.sin_addr:=16#0A000626;

(*То же самое для функции чтения {в принципе не важно}*)

sock_adr1.sin_family:=SOCKET_AF_INET;

sock_adr1.sin_port:=16#1111;

my_BUFs:=’qwertyuiopasdfghjklzxcvbnm123456′;

(*Буфер передачи, данная информация используется для контроля ответа, может быть любой*)

my_BUFr:=»;

(*Буфер приема*)

sock:=SysSockCreate(SOCKET_AF_INET,SOCKET_DGRAM,SOCKET_IPPROTO_ICMP);

send:=FALSE;

suces:=0;

faul:=0;

count:=0;

1:

(*Участок выполняемый в цикле опроса*)

IF NOT send THEN

send:=TRUE;

resd:=SysSockSendTo(sock,ADR(my_bufs),32,0,ADR(sock_adr),SIZEOF(sock_adr));

(*Собственно посылаем запрос в ICMP формате c параметрами sock_adr*)

END_IF

tmr(IN:=start_TON,PT:=t#0.003s);

(*Организуем таймер для обеспечении временной задержки ожидания ответа*)

IF NOT start_TON THEN

start_TON:=TRUE;

END_IF

IF tmr.Q THEN

resd:=SysSockRecvFrom(sock,ADR(my_bufr),32,0,ADR(sock_adr1),SIZEOF(sock_adr1));

(*Время ожидания истекло считываем данные*)

IF FIND(my_BUFr,’pasd’)<>0           THEN

suces:=suces+1;

(*Сравниваем переданные и принятые данные в случае идентичности увеличиваем счетчик удачного Ping*)

ELSE

faul:=faul+1;

(*В противном случае увеличиваем счетчик неудачного Ping запроса*)

END_IF

my_BUFr:=»;

(*Очишаем буфер приема*)

send:=FALSE;

start_TON:=FALSE;

(*Устанавливаем переменные состояния для следующего запроса*)

count:=count+1;

(*Увеличиваем счетчик сформированных запрсов*)

END_IF

IF count=1000 THEN

(*Если выполнено определенное кол-во запрсов «останавливаем программу»*)

web_stat:=3;

END_IF

(*Участок выполняемый при останове программы*)

3:

;

END_CASE

 

Полезные функции ОВЕН ПЛК

По мнению многих специалистов, успевших познакомиться с программируемыми контроллерами ОВЕН, одним из основных их достоинств является среда программирования CoDeSys. Как уже неоднократно отмечалось, CoDeSys – это наиболее известный и универсальный инструмент программирования ПЛК и промышленных компьютеров, созданный по стандарту МЭК 61131-3. Это и пять языков программирования, и ши-рокие возможности по отладке, и возможность связать несколько контроллеров (в том числе разных производителей) общими сетевыми переменными, и поддержка большого количества библиотек функциональных блоков различных производителей. От среды программирования зависит скорость разработки и отладки программы контроллера, что в свою очередь определяет затраты на внедрение проекта. Многие полезные функции, которыми располагает ОВЕН ПЛК, непосредственно связаны с CoDeSys. Самая значимая из функций – это конфигурирование периферийногооборудования при помощи PLC Configuration.

Конфигуратор «PLC Configuration»

PLC Configuration – это специализированное окно, в котором задаются параметры работы всего периферийного оборудования. Внутри PLC Configuration описываются входы/выходы контроллера и его интерфейсы. Здесь же настраивается сетевой обмен по протоколам Modbus, Modbus TCP, ОВЕН и DCON с модулями ввода/вывода и индикации. При помощи этого окна включаются иные аппаратные ресурсы контроллера: счётчики, триггеры, генераторы ШИМ, преобразователи аналоговых сигналов, архиватор и т.д. Работа в окне PLC Configuration подробно описана в документе, представленном на диске, входящем в комплект поставки ПЛК.

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

Установка связи периферийного оборудования с переменными пользовательской программы – это вторая важная функция PLC Configuration.

Как происходит работа с периферийным оборудованием во многих контроллерах, не оснащённых CoDeSys? В них есть области памяти, где драйверы периферийного оборудования, счётчики и таймеры хранят данные. Эти области жёстко заданы в каждом контроллере.

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

В CoDeSys работа построена принципиально по-иному. В окне PLC Configuration отображаются переменные, в которые драйверы периферийного оборудования размещают данные.

Пользователь присваивает этим переменным имена и использует их при написании программы, то есть глобальные переменные объявляются внутри самого окна конфигурирования периферийного оборудования. В этом случае программа не привязана к абстрактным областям памяти, а непосредственно привязывается к конкретному оборудованию. При замене периферийного оборудования, например, внешнего модуля ввода/вывода, код программы не требует обновления. Новый модуль легко конфигурируется в окне PLC Configuration, а его переменным присваиваются те же имена, которые были при работе с предшествующим модулем.

Библиотека функциональных блоков

В среде CoDeSys существует возможность подключения библиотек, в которых уже описаны готовые функциональные блоки. В последнее время группой компаний, входящих в CoDeSys Automation Alliance, создано большое количество библиотек с различными полезными функциями, их использование облегчает создание программы, необходимой для решения конкретной задачи. В комплекте поставки ПЛК на СD-диске вместе со средой CoDeSys находятся библиотеки с большим числом функциональных блоков. Все эти готовые функциональные блоки, содержащие алгоритмы работы с часами реального времени, календарем и датами, сетевыми интерфейсами, протоколами TCP и UDP, SMS-сообщениями и многим другим могут использоваться при создании пользователем собственной программы. Перечень библиотек всё время пополняется, новые можно скачать на сайте 3S-Software, а также с сайтов производителей контроллеров, поддерживающих CoDeSys.

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

Работа с файлами и архивирование данных

Контроллер ОВЕН ПЛК имеет встроенный Flash-диск со специализированной файловой системой, позволяющей хранить в нём различные файлы. Это в первую очередь системные файлы, в которых содержится исполняемая контроллером программа, файлы с настройками, а также файлы, в которых протоколируются рабочие параметры технологического процесса, такие как: запуск, остановка, пропадание питания, сбои в работе периферийного оборудования.

Также среда CoDeSys позволяет записать на внутренний Flash-диск контроллера исходный проект. Такая возможность позволяет (если исходный проект по каким-либо причинам утрачен, а необходимо внести изменения в программу) подключиться к контроллеру и загрузить из него проект в CoDeSys, а затем при необходимости отредактировать программу контроллера.

Помимо перечисленного на Flash-диск контроллера можно записывать файлы архивов, в которых будут сохранены результаты измерений, вычисленные или текущие значения, полученные во время работы системы, управляемой ПЛК. Для создания архивов в ОВЕН ПЛК разработан специальный программныймодуль, подключающийся в окне PLC Configuration. Широкие возможности настройки этого модуля обеспечиваютрешение большинства типовых задачархивирования данных. В его настройках можно задать имя файла, период записи данных в архив, время начала и окончания архивирования. Также модуль может производить архивирование только в определённые дни недели или при определённых заданных условиях.

Файлы со встроенного Flash-диска, в томчисле файлы архивов, можно считыватьс контроллера, используя среду CoDeSys или специальную программу, входящуюв комплект поставки контроллера.

В ОВЕН ПЛК размер Flash-диска составляет около 3 Мбайт. Учитывая, чтодля решения задач архивирования этонебольшой размер, компания проводитработы по встраиванию в контроллерыпорта USB-Host, что позволит в дальнейшем подключать внешние Flash-накопители, которые сегодня широко распространены и доступны, а объём их памяти может составлять несколько гигабайт.

Это решение позволит расширить возможности контроллера для записи больших архивных файлов.

 

Мой блог находят по следующим фразам