Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Программирование задач автоматического управления объектами на различных алгоритмических языках

..pdf
Скачиваний:
2
Добавлен:
12.11.2023
Размер:
3.28 Mб
Скачать

Анализ этой структуры показывает, что слейв с этим именем будет передавать информационный сигнал по этому каналу обратно мастеру. Для обеспечения работоспособности канала Unsigned variable (Listen) в структуре модуля OWEN (slave) необходимо в окне Settings| Module parameters| аналогично задать те же параметры, что и для того же канала в модуле OWEN (Master), а именно:

1)имя прибора (Slave Name) – установить TPM;

2)длина адреса устройства (Address Length) – установить 8 bit;

3)адрес устройства (Address) – установить 4;

4)видимость (Visibility) – установить NO.

На этом конфигурация задачи заканчивается, и общая структура конфигурации модуля ОВЕН приобретает вид, показанный на рис. 6.9. Для разработки программы этой задачи раскрываем окно PLC_PRG(PRG-ST) и в этом окне набираем программу, показанную на рис. 6.10.

Рис. 6.10. Программа передачи сигнала температуры печи к параметру ТТ

По этой программе командой %QB9.3:=255; запускается в работу модуль Owen (Master). После чего команда ветвления (с номером 0005) контролирует состояние кнопки К1. Если значение переменной %IX0.0 будет истинным (кнопка нажата), то параметр %QX1.3 тоже станет истинным и нагреватель печи включится в работу, так

181

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

Аналогично по команде (с номером 0006) при истинном значении параметра %IX0.1, привязанного к кнопке К2, параметр %QX1.2 тоже становится истинным, поэтому по каналу D03 на ПЛК включается в работу вентилятор обдува печи. Сигнал датчика температуры печи привязан к переменной %QD10.1.0.0., которая является адресом канала передачи данных от слейва к мастеру. Исходя из этого мастер, получив этот сигнал, командой ТТ:= %QD9.1.0.0 передает значение этого сигнала переменной ТТ.

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

ром 81 в канале AT %QW9.0:WORD;(*Last error *)[CHANNTL (Q)]

свидетельствуето недостаточнойвеличинеэтого времени.

Для того чтобы изменить величину этого времени, нужно вернуться к файлу конфигурации (окно PLC Configuration) и, установив курсор на контуре надписи OWEN (Master)[VAR], выделить ее щелчком левой клавиши мыши. После этого надо перенести курсор на надпись Settings|Module parameters|, расположенную в правой половине окна конфигурации, и соответствующим щелчком левой клавиши мыши раскрыть это окно. В строке Max response delay ms этого окна параметр 50 мс нужно заменить на 300 мс и снова запустить программу. В этом случае канал AT %QW9.0:WORD;(*Last error *)[CHANNTL (Q)]; будет показывать ошибку 0, а параметр ТТ будет изменяться в соответствии с показаниями датчика температуры (показаниями прибора ТРМ 201), поэтому программа будет работать в нормальном режиме.

6.3.6. Принцип программирования работы автономного модуля дискретного ввода-вывода контроллера ОВЕН ПЛК-150

Модуль дискретного ввода-вывода (МДВВ) контроллера ОВЕН ПЛК-150 представляет собой автономное устройство, предназначенное для управления дискретными внешними устройствами, ко-

182

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

Команды по управлению процессами ввода или вывода этот модуль получает от управляющего контроллера по линии цифровой связи, организованной по принципам физического протокола RS-485.

Модуль имеет 12 каналов ввода и восемь каналов вывода. Для использования указанных каналов в программах обмена данными по сети управления необходимо предварительно сконфигурировать эти каналы по специальной программе. Такая конфигурация для каналов этого модуля выполняется разово. В нашем стенде все модули проконфигурированы.

6.3.6.1. Программирование работы автономного модуля дискретного ввода-вывода МДВВ под управлением контроллера ОВЕН ПЛК-150 в составе общей сети

Принципы программирования работы модуля дискретного вво- да-вывода МДВВ в составе общей сети управления рассмотрим на примере следующей задачи.

Задача: Составить программу и сконфигурировать для нее систему связи между устройствами Owen (Master) и Owen (Slave), по которой при нажатии на кнопку К1 на панели контроллера ОВЕН ПЛК-150 включается релейный выход нулевого канала модуля дискретного ввода-вывода МДВВ.

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

Конфигурацию системы для этой задачи выполняем следующим образом.

Раскрываем позицию PLC Configuration и выбираем контроллер PLC 150 I. Устанавливаем курсор на перекрестие надписи PLC 150 I и двойным щелчком левой клавиши мыши раскрываем структуру контроллера PLC150 I-L, которую затем дополняем элементами се-

183

тевой связи. Для этого через позицию Append Subelement снова выбираем и устанавливаем модули OWEN (Master)[VAR] и OWEN (slave)[VAR], которые войдут в конфигурацию нашей задачи.

Устанавливаем курсор на перекрестие надписи OWEN (Master)[VAR], двойным щелчком левой клавиши мыши раскрываем структуру этого элемента сети управления. Структурно в модуле OWEN (Master)[VAR] всегда присутствует пять каналов, назначение которых было описано выше:

AT %QW9.0:WORD;(*Last error *)[CHANNTL (Q)];

AT %QW9.1:WORD;(*Last hash *)[CHANNTL (Q)];

AT %QW9.2:WORD;(*Last address *)[CHANNTL (Q)];

AT %QW9.3:WORD;(*Start/Stop *)[CHANNTL (Q)];

RS-485 (Slot).

Канал «Старт/Стоп» (*Start/Stop *) используется для управления процессом включения в работу модуля (Master) командой 0x00FF (255). Командой 0x00FE (254) выполняется остановка работы этого модуля.

В канале RS-485 (Slot) устанавливаются параметры физического протокола RS-485 (последовательного порта). Эти параметры должны быть следующими:

1)скорость передачи информации в сети (Communication Sheed) –

9600;

2)проверка четности (Parity) – остается NO PARITI CHTK;

3)количество битов данных (в команде посылки) (Data Bits) – 8;

4)количество стоп-битов (Stop Leength) – 1;

5)тип интерфейса (InterfaseType) – RS-485;

6)тип протокола обмена (FrameOriented) – ASCII;

7)время задержки ответа на запрос (Framing time) – 50 мс;

8)видимость (Visibility) – NO.

После ввода нужных параметров настройки канала последовательного порта RS-485 (Slot) (см. предыдущий пример) необходимо выбрать тип канала (переменную), по которому мастер будет связываться со слейвом. Для этого нужно установить курсор на поле надписи Owen (Master) [VAR] и через раскрытие позиции Append Subelement выйти по стрелке в следующее меню, в котором приве-

184

ден список типов каналов связи. В этом списке выбрать канал Unsigned variable (Write), который позволит мастеру передавать данные в любом формате, а также вставлять дополнительно переменные длиной в 1, 2 или 4 байта. При этом необходимо учитывать принцип выравнивания ячеек памяти в контроллере.

Этот принцип определен разработчиками программного пакета CoDeSys и состоит в том, что переменные размером 8 бит, 2 и 4 байта должны располагаться в памяти только в определенном адресном пространстве. По этому принципу адрес четырехбайтной переменной должен всегда быть кратен 4, а для двухбайтной переменной соответственно кратен 2. Однобайтовая переменная (8 бит) может находиться в любой точке адресного пространства. С учетом этого всегда предпочтительней применять конструкцию из восьмибитовых переменных. Ввиду этого после вызова канала Unsigned variable (Write) устанавливаем на этой надписи курсор и через позицию Append Subelement в следующем меню выбираем позицию 8 bits. В результате этого в структуре конфигурации задачи появляется канал 8 bits[VAR], который в своей структуре содержит восемь однобитовых каналов.

После этого необходимо определить параметры канала Unsigned variable (Write). Для этого снова устанавливаем курсор на позицию этого канала и щелчком левой клавиши мыши в правой половине поля конфигурации задачи раскрываем меню Base parameters |Module parameters|. Эти параметры должны быть следующими:

1)длина адреса устройства (Address Length) – 8 bit;

2)адрес устройства (Address) – в нашем случае 16;

3)признак действия сетевой команды (Hash name) – команда вывода R.OE;

4)индекс прибора (Index) – установить 0;

5)использовать индекс (Use index) – выбрать Yes;

6)период опроса (Polling time, ms) – установить 100;

7)режим работы (Work mode) – установить Value change (по изменению значения);

8)точность (Precision) – установить 2;

9)видимость (Visibility) – установить NO.

185

После установки параметров канала Unsigned variable (Write) перемещаем курсор на позицию надписи Owen (Slave) [VAR] и щелчком левой клавиши мыши в правой половине поля конфигурации аналогично раскрываем меню Base parameters |Module parameters| для этого модуля. Параметры этого модуля должны содержать следующее:

1)имя прибора (Slave Name) – установить MDVV;

2)длина адреса устройства (Address Length) – 8 bit;

3)адрес устройства (Address) – установить 16;

4)видимость (Visibility) – установить NO.

После установки этих параметров снова перемещаем курсор на позицию надписи Owen (Slave) [VAR] и щелчком правой клавиши мыши аналогично вызываем всплывающее меню, в котором из позиции Append Subelement выходим по стрелке в следующее меню, содержащее список типов каналов связи модуля Owen(Slave). В этом списке нужно также выбрать канал Unsigned variable (Listen), который аналогично позволяет слейву слушать команды мастера и передавать ему обратно по сети ответы на них. После этого повторно через позицию Append Subelement вызываем всплывающее меню, в котором выбираем канал 8 bits. Таким образом, структура каналов модуля Owen (Slave) полностью совпадает со структурой модуля Owen (Master).

Заканчиваем процесс конфигурации установкой параметров канала Unsigned variable (Listen). Это делается по аналогии с установкой тех же параметров для канала Unsigned variable (Write). Общий вид полученной конфигурации этой задачи показан на рис. 6.11.

После этой процедуры переходим к написанию программы на языке ST. Для этого раскрываем окно PLC_PRG(PRG-ST) и в этом окне набираем программу:

%QB9.3:=255;

IF %IX0.0 THEN %QB9.1.0.0:=63; ELSE %QB9.1.0.0:=O; END_IF;

По этой программе командой %QB9.3:=255; запускается в работу модуль Owen (Master), который при истинности условия %IX0.0 (нажатие кнопки К1 на панели контроллера) передает в сеть по ка-

186

налу %QB9.1.0.0 шестнадцатеричное число 63, в результате этого командой R.OE модуль МДВВ включает свой релейный выход нулевого канала. Этот канал остается включенным до тех пор, пока кнопка К1 нажата. При размыкании этой кнопки условие %IX0.0 становится ложным и в канал %QB9.1.0.0 по направлению ELSE подается число 0, в результате чего МДВВ выключает свой релейный выход нулевого канала.

Рис. 6.11. Структура конфигурации системы для выполнения поставленной задачи

Конфигурация модуля МДВВ позволяет передавать по сети управления широтно-импульсные сигналы (ШИМ) со скважностью 0,5 и 0,125. Сигналы ШИМ со скважностью 0,5 формируются в том случае, когда командой R.OE по каналу связи к модулю передается число 63. Если этой командой передается число 62, то импульс ШИМ будет равен 0,125. Для передачи импульсных сигналов в модуле МДВВ стенда предусмотрены первый и второй каналы, скваж-

187

ность которых выбирается соответствующей командой. Остальные каналы этого модуля работают со скважностью, равной единице.

Внашем примере рассмотрен процесс активизации через сеть

спротоколом связи ОВЕН нулевого канала порта дискретного вывода модуля МДВВ. Активизация остальных каналов этого порта через эту сеть производится аналогично, разница лишь в том, что меняется адрес устройства (Address) при описании параметров в окне Base parameters |Module parameters| для этого модуля. В этом случае для каждого последующего канала этот адрес последовательно увеличивается на единицу. Таким образом, чтобы активизировать первый канал порта дискретного вывода модуля МДВВ, надо ему присвоить адрес, равный числу 17, соответственно второй такой канал будет иметь адрес, равный числу 18, и так далее, вплоть до числа 24. Остальные параметры этих каналовостаютсятакими же, какидля нулевого канала.

Замените адрес устройства (Address) на число 17 и проверьте работу первого канала порта дискретного вывода модуля МДВВ в импульсном режиме.

Мы рассмотрели принципы передачи по сети протокола ОВЕН команды на включение нулевого канала порта дискретного вывода модуля МДВВ по сигналу с порта дискретного ввода ведущего контроллера. Теперь рассмотрим принцип передачи по сети команды на включение этого канала сигналом дискретного ввода, поступающего

ссамого модуля МДВВ.

Для этого изменим исходную задачу в том, что включение нуле-

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

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

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

188

Для изменения сетевой конфигурации задачи нужно установить курсор на поле надписи Owen (Master) [VAR]. Щелчком правой клавиши мыши вызвать позицию Append Subelement, из которой по стрелке выйти в следующее меню, содержащее список типов каналов связи для мастера. В этом списке выбрать канал Unsigned variable (Listen)

идополнить его переменной длиной в 8 бит. После этого со стороны модуля Owen (Master) [VAR] появитсяканал 8 bits[VAR].

Аналогичную процедуру выполнить для слейва, вставив канал Unsigned variable (Listen), сдополнениемегопеременнойдлинойв8 бит. ПриэтоммодульOwen (Slave) [VAR] дополнитсяканалом8 bits[VAR].

После этого необходимо уточнить параметры нового канала

Unsigned variable (Listen) как для модуля Owen (Master) [VAR], так

идля модуля Owen (Slave) [VAR]. Для этого необходимо снова установить курсор на позицию нового канала для модуля мастер

ищелчком левой клавиши мыши в правой половине поля конфигу-

рации задачи раскрыть меню Base parameters |Module parameters|.

Параметры этого канала должны быть следующими:

1)длина адреса устройства (Address Length) – 8 bit;

2)адрес устройства (Address) – в нашем случае 16;

3)признак действия сетевой команды (Hash name) – команда вывода R.CN;

4)индекс прибора (Index) – установить 0;

5)использовать индекс (Use index) – выбрать NO;

6)период опроса (Polling time, ms) – установить 100;

7)режим работы (Work mode) – установить Value change (по изменению значения);

8)точность (Precision) – установить 2;

9)видимость (Visibility) – установить NO.

После ввода необходимых параметров дополнительных каналов на рабочем поле пакета CoDeSys записать следующую программу:

%QB9.3:=255;

IF %IX0.0 THEN %QB9.1.0.0:=63; END_IF; IF %QX9.2.0.1 THEN %QB9.1.0.0:=0; END_IF;

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

189

Error 3454 The address ‘%QB9.2.0.0’ prompts to a used memory block!

Error 3454 The address ‘%QB10.1.0.0’ prompts to a used memory block!

Этим сообщением программа извещает о том, что при конфигурации получено пересечение адресов в каналах ‘%QB9.2.0.0’

и‘%QB10.1.0.0’.

Овероятности получения такой ситуации было сказано выше. Для выравнивания адресного пространства в Owen (Master) [VAR]

к каналам Unsigned variable (Write) и Unsigned variable (Listen) необ-

ходимо добавить двухбайтовую переменную (см. рис. 6.12). Для этого нужно установить курсор сначала на надпись 8 bits[VAR], находящуюся ниже надписи Unsigned variable (Write), и добавить параметр 2 byte[VAR], а потом аналогичный канал вставить ниже надписи Unsigned variable (Listen). Окончательный вид конфигурации этой задачи показан на рис. 6.12.

Программа этой задачи должна выглядеть уже следующим образом:

%QB9.3:=255;

IF %IX0.0 THEN %QB9.1.0.0:=63; END_IF; IF %QX9.2.0.1 THEN %QB9.1.0.0:=0; END_IF;

Если теперь запустить программу, то она успешно запустится, при этом, нажав на кнопку К1 на лицевой панели контроллера, мы активизируем нулевой канал порта дискретного вывода модуля МДВВ. Нажатие кнопки К7, подключенной к первому каналу порта модуля МДВВ, переводит в состояние TRUE битовый канал %QX9.2.0.1, в результате чего по адресу %QB9.1.0.0 посылается ноль и нулевой канал порта дискретного вывода модуля МДВВ теряет свою активность.

Как уже сообщалось выше, конфигурация модуля МДВВ позволяет передавать по сети управления широтно-импульсные сигналы. Для этой цели в стенде задействованы каналы модуля МДВВ с адресами D06 и D07. При этом канал с адресом D06 аппаратно связан с портом дискретного ввода ПЛК по каналу с адресом DI5.

190

Соседние файлы в папке книги