Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_Обмен по порту RS-485.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
316.93 Кб
Скачать

Команды для обмена данными по порту RS-485

CPU 222 имеет один порт RS-485 (порт 0) для обмена с удаленными устройствами. Для управления протоколом обмена по сети предназначена ячейка памяти SMB30. Биты 0 и 1 этой ячейки памяти определяют режим обмена по сети:

00 = протокол интерфейса точка-точка (PPI/ Slave-режим)

01 =протокол свободно программируемого обмена данными

10 = PPI/ Master - режим

11 =резерв (по умолчанию PPI/ Slave режим).

1. Обмен по протоколу ppi

В случае протокола PPI (значения 00 и 10) биты с 2-го по 7 памяти SMB30 игнорируются. В случае 10, S7–200 становится master-устройством в сети и допускает выполнение команд NETR и NETW.

1 . Команда чтения из сети NETR инициирует СОМ-порт на операцию чтения данных из удаленного устройства через указанный порт PORT.

2. Команда записи через сеть NETW инициирует СОМ-порт на операцию записи данных в удаленное устройство через указанный порт PORT.

Д ля СРU 222 значение входа PORT равно 0. На вход TBL может быть подключен ячейка памяти размером байт, который показывает на начальный адрес пакета передачи данных. Ниже приведена структура этого пакета.

D - Операция выполнена:

0 = не выполн. 1 = выполнена

A - Операция поставлена в очередь:

0 = не активна 1 = активна

E - Операция содержит ошибку:

0 = нет ошибки 1 = ошибка

Как видно, команда NETR и может прочитать до 16 байтов информации из удаленной станции, а команда NETW может записать до 16 байтов информации в удаленную станцию.

Поле Код ошибки содержит причину ошибки и может принимать следующие значения:

0 - Нет ошибки.

1- Ошибка истечения времени ожидания: удаленная станция не отвечает.

2 - Ошибка приема: ошибка четности, кадрирования или контрольной суммы в ответе.

3 - Ошибка с переходом в автономный режим: конфликт, вызванный двойным адресом станции или неисправностью аппаратуры.

4 - Ошибка переполнения очереди: активизировано более 8 команд NETR/NETW.

5 - Нарушение протокола: попытка выполнить команду NETR или NETW, без разблокировки привилегированного режима PPI в SMB30 или SMB130.

6 - Недопустимый параметр: параметр TBL содержит недопустимое или ошибочное значение.

7 - Нет ресурса: удаленная станция занята (Идет процесс загрузки в станцию или из станции.)

8- Ошибка 7-го уровня: нарушение протокола приложения

9 - Ошибка сообщения: неверный адрес данных или неправильная длина данных.

В программе можно иметь любое количество команд NETR /NETW, но одновременно можно активизировать не более восьми команд NETR и NETW. Например, в данном S7-200 в одно и то же время у вас могут активными четыре NETR и четыре NETW или два NETR и шесть NETW.

Пример.

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

Направляющее устройство управляет потоком стаканчиков с маслом, направляя их к той или иной упаковочной машине. Для управления упаковочными машинами используются четыре модуля S7–200, а для управления направляющим устройством используется один S7–200, оборудованный интерфейсом оператора TD 200.

Ниже показан принимающий буфер VB200 и передающий буфер VB300 для доступа к данным в станции 2. S7–200 использует команду NETR для регулярного чтения управляющей информации и информации о состоянии из каждой упаковочной машины.

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

Ниже приведем реализацию этой программы для направляющего устройства (станция 8).

Сегмент 1

1. В первом цикле установим SB30 = 2 – контроллер работает в режиме PPI Master

2. Очистим все принимающие и передающие буфера. Диапазон ячеек памяти:

68 * 2 = 136. VB200 + 136 = VB336

Команда заполнения памяти FILL записывает N последовательных слов, начиная с адреса OUT, значением слова, содержащегося по адресу IN.

Сегмент 2

Если бит завершения команды NETR V200.7 установлен и 100 коробок упаковано:

1. Загрузить адрес станции упаковочной машины №1.

2. Загрузить указатель на данные в удаленной станции.

3. Загрузить длину данных, подлежащих передаче.

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

V B301 = 2 -

адрес удаленной

станции

VD302 = &VB100 -

указатель на данные в удаленной станции.

VB306 = 2 -

длина данных, подлежащих передаче

VW307 = 0 -

данные для передачи

Передача данных по порту 0.

VB300 – начальный адрес передаваемых данных

Сегмент 3

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

Для принятых данных V200.7 = 1 – завершение команды принятия.

VB207 содержит управляющее слово принятых данных из удаленной станции. Это слово сохраняем в VB400.

Сегмент 4

Если цикл не первый и нет ошибок:

1. Загрузить адрес станции упаковочной машины №1.

2. Загрузить указатель на данные в удаленной станции.

3. Загрузить длину данных, подлежащих приему.

4. Прочитать управляющую информацию и данные о состоянии упаковочной машины №1.

V200.6 = 0 – операция приема не активна

V200.5 = 0 – операция не содержит ошибку

VB201 = 2 – адрес удаленной станции

VD202 = &VB100 – адрес передаваемых данных

VB206 = 3 – длина данных

NETR VB200, 0 – считывать данные через RS-485 из упаковочной машины № 1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]