Главная Книги - Разные Программируемые управляющие устройства VersaMax (ПЛК Micro и ПЛК Nano). Руководство пользователя (2002 год)
поиск по сайту правообладателям
|
|
содержание .. 11 12 13 14 ..
16
Функции таймера и счетчика
Таймер задержки по выключению
Таймер задержки по выключению накапливает время, когда его питание
выключено, и сбрасывается в 0, когда питание подается. Время может
отсчитываться в десятых (0.1), сотых (0.01), или тысячных (0.001) долях секунды.
Диапазон единиц времени составляет от 0 до +32,767. Состояние таймера
сохраняется при прерывании питания; при подаче питания автоматическая
инициализация не происходит.
Enable
OFDT
(Q)
HUNDS
Текущее
Заданное
значение
PV CV
значение
Адрес - 3 слова
Когда таймер задержки по выключению получает питание, он пропускает питание
направо и устанавливает текущее значение (CV) в 0. Функция использует слово 1
[регистр] для хранения значения CV. Выход остается включенным, пока функция
получает питание. Если подача питания на функцию прерывается, она продолжает
передавать питание направо, и таймер начинает накапливать время в текущем
значении.
Если в течение цикла CPU выполняются несколько одинаковых таймеров с
одинаковыми адресами, текущие значения таймеров будут одинаковыми.
Таймер задержки по выключению не пропускает питание, если заданное значение
отрицательно или равно 0.
Каждый раз, когда функция вызывается логикой разрешения, установленной в 0,
текущее значение обновляется для отображения времени, прошедшего с
выключения таймера. Когда текущее значение (CV) равно заданному значению
(PV), функция перестает пропускать питание направо. Когда это происходит,
таймер останавливает накопление времени.
Когда функция снова получает питание, текущее значение устанавливается в 0.
Когда таймер используется в программном блоке, вызываемом не в каждом цикле,
таймер накапливает время между обращениями к программному блоку, пока не
будет сброшен. Это означает, что он работает как таймер в программе с циклом,
гораздо более медленным, чем таймер в главном программном блоке. Для
программных блоков, не активных в течение длительного времени, таймер должен
быть запрограммирован, чтобы он позволял наверстать отставание. Например, если
таймер в программном блоке сбрасывается, и программный блок не вызывается в
течение 4 минут, то при вызове программного блока будет накоплено 4 минуты.
Это время используется таймером при наличии питания до первого сброса таймера.
16-104
16
Функции таймера и счетчика
Таймер задержки по выключению
Пример
В примере таймер задержки по выключению используется для выключения выхода
(%Q00001) всякий раз, когда включается вход (%I00001). Выход снова включается
через три секунды после выключения входа.
%I00001
%Q00001
OFDT
HUNDS
CONST
PV
CV
+00003
%R00019
Глава 16 Система команд
16-105
16
Функции таймера и счетчика
Таймер задержки по выключению
Работа функции таймера задержки по выключению
ENABLE
Q
A
B
C
D
E
F G
H
A. ENABLE и Q переходят в 1; таймер сбрасывается (CV = 0).
B. ENABLE переходит в 0; таймер начинает накапливать время.
C. CV достигает PV; Q выключается, и таймер прекращает накапливать время.
D. ENABLE переходит в 1; таймер сбрасывается (CV = 0).
E. ENABLE переходит в 0; таймер начинает накапливать время.
F. ENABLE переходит в 1; таймер сбрасывается (CV = 0).
G. ENABLE переходит в 0; таймер начинает накапливать время.
H. CV достигает PV; Q выключается, и таймер прекращает накапливать время.
Работа функции таймера задержки по выключению
Вход/
Варианты
Описание
выход
адрес
R
Функция использует три последовательных слова (регистра) памяти
%R для хранения следующих данных:
• Текущее значение (CV)
= слово 1.
• Заданное значение (PV) = слово 2.
• Управляющее слово
= слово 3.
Не используйте этот адрес с другими инструкциями.
Осторожно: Наложение ячеек вызовет неустойчивую работу
таймера.
enable
питание
Текущее значение таймера сбрасывается, когда подано питание.
PV
I, Q, M, T, G, R, AI,
Значение PV копируется в заданое значение таймера, когда на
AQ, константа,
таймер подается питание или он сбрасывается. Для регистра (%R)
отсутствие значения
ячейки PV, параметр PV указывается как второе слово адреса
параметра. Например, при адресе параметра %R0001, для
параметра PV будет использоваться %R0002.
Q
питание, отсутствие
Выход Q включается, когда текущее значение меньше заданного
питания
значения. Состояние Q сохраняется при пропадании питания; при
подаче питания автоматическая инициализация не происходит.
время
десятые, сотые или
Время увеличения для младшего бита заданного значения и
тысячные доли
текущего значения.
секунды
16-106
16
Функции таймера и счетчика
Инкрементный счетчик
Функция инкрементного счетчика (CTU) считает вверх до назначенного значения.
Диапазон от -0 до +32,767 отсчетов. Когда вход сброса инкрементного счетчика
(CTU) включен, текущее значение счетчика устанавливается в 0. При каждом
переходе входа разрешения из 1 в 0 текущее значение увеличивается на 1. Текущее
значение может быть больше заданного значения PV. Выход включен, когда
текущее значение больше или равно заданному значению. Состояние
инкрементного счетчика (CTU) сохраняется при пропадании питания; при подаче
питания автоматическая инициализация не происходит.
Enable
upctr
(Q)
Reset
R
Заданное
PV
значение
Адрес
Параметры функции инкрементного счетчика
Вход/
Варианты
Описание
выход
адрес
R
Функция использует три последовательных слова (регистра) памяти
%R для хранения следующих данных:
•
Текущее значение (CV)
= слово 1.
•
Заданное значение (PV)
= слово 2.
•
Управляющее слово
= слово 3.
Не используйте этот адрес с другим инкрементным счетчиком,
декрементным счетчиком или любыми другими инструкциями.
Осторожно: Наложение ячеек вызовет неустойчивую работу
счетчика.
enable
питание
При положительном переходе на входе enable текущий отсчет
увеличивается на 1.
R
питание
Когда на вход R подано питание, он устанавливает текущее значение
в 0.
PV
I, Q, M, T, G, R,
Значение PV копируется в заданое значение счетчика, когда на
AI, AQ,
счетчик подается питание или он сбрасывается.
константы,
отсутствие
питания
Q
питание,
Выход Q включается, когда текущее значение больше или равно
отсутствие
заданному значению.
питания
Глава 16 Система команд
16-107
16
Функции таймера и счетчика
Инкрементный счетчик
Пример функции инкрементного счетчика
В примере при каждом переходе входа %I0012 из 0 в 1, инкрементный счетчик
PRT_CNT увеличивается на 1; внутренняя катушка %M0001 включается, когда
будет отсчитано 100 переходов. Когда %M0001 включается, накопленное значение
устанавливается в 0.
%I0012
%M0001
upctr
%M0001
R
CONST
PV
+00100
PRT_CNT
16-108
16
Функции таймера и счетчика
Декрементный счетчик
Функция декрементного счетчика (CTD) считает вниз от заданного значения.
Минимальным заданным значением является 0; максимальным заданным значением
является +32767 отсчетов. Минимальным текущим значением является -32768.
При сбросе текущее значение счетчика устанавливается в заданное значение PV.
Когда вход enable переходит из 0 в 1, текущее значение уменьшается на 1. Выход
включается, когда текущее значение меньше или равно 0.
Текущее значение декрементного счетчика сохраняется при пропадании питания;
при подаче питания автоматическая инициализация не происходит.
Enable
dnctr
(Q)
Reset
R
Заданное
PV
значение
Адрес
Параметры функции декрементного счетчика
Вход/
Варианты
Описание
выход
адрес
R
Функция использует три последовательных слова (регистра)
памяти %R для хранения следующих данных:
•
Текущее значение (CV)
= слово 1.
•
Заданное значение (PV)
= слово 2.
•
Управляющее слово
= слово 3.
Не используйте этот адрес с другим инкрементным счетчиком,
декрементным счетчиком или любыми другими инструкциями.
Осторожно: Наложение ячеек вызовет неустойчивую работу
счетчика.
enable
питание
При положительном переходе на входе enable текущее значение
уменьшается на 1.
R
питание
Когда вход R получает питание, он устанавливает текущее
значение в заданное значение.
PV
I, Q, M, T, G, R, AI, AQ,
Значение PV копируется в заданое значение счетчика, когда на
константы, отсутствие
счетчик подается питание или он сбрасывается.
питания
Q
питание, отсутствие
Выход включается, когда текущее значение меньше или равно 0.
питания
Глава 16 Система команд
16-109
16
Функции таймера и счетчика
Декрементный счетчик
Пример 1
В примере декрементный счетчик COUNTP отсчитывает 500 переходов перед
включением выхода %Q0005.
NEW _PRT
%Q0005
dnctr
NXT_BAT
R
CONST
PV
+0500
COUNTP
Пример 2
Следующий пример показывает, как ПЛК может учитывать количество деталей в
зоне временного хранения. Здесь используется пара инкрементного и
декрементного счетчиков с общим регистром для хранения текущего значения.
Когда детали поступают в зону хранения, инкрементный счетчик увеличивает
текущее значение количества хранящихся частей на 1. Когда детали забираются из
зоны хранения, декрементный счетчик уменьшается на 1, уменьшая значение
хранимого количества на 1. Два счетчика используют различные адреса регистров.
Когда регистр сосчитан, его текущее значение необходимо переслать в регистр
текущего значения другого счетчика.
%I00003
upctr
%I00001
R
%I00009
CONST
PV
+00005
%I00003
%R0100
move
INT
%I00001
%R0100
IN
Q
%R0104
%I00003
dnctr
%I00002
R
%I00009
CONST
PV
+00005
%R0104
%I00002
move
INT
%I00003
%R0104
IN
Q
%R0100
Пример использования функций сложения и вычитания для учета хранения
приведен в разделе Математических функций.
16-110
Глава
Функция системного запроса
17
Эта глава объясняет функцию системного запроса SVCREQ, которая вызывает
специальные службы ПЛК. В ней описываются параметры функции SVCREQ для
ПЛК VersaMax Nano и Micro.
Номера функций SVCREQ
Формат функции SVCREQ
SVCREQ 1: Изменить/прочитать таймер цикла с постоянным временем
SVCREQ 2: Прочитать времена окон
SVCREQ 3: Изменить режим окна связи с программатором
SVCREQ 4: Изменить режим окна системных коммуникаций
SVCREQ 6: Изменить/прочитать количество слов при подсчете
контрольной суммы
SVCREQ 7: Изменить/прочитать дату и время суток
SVCREQ 8: Сбросить сторожевой таймер
SVCREQ 9: Прочитать время с начала цикла
SVCREQ 10: Прочитать имя папки
SVCREQ 11: Прочитать идентификатор ПЛК
SVCREQ 13: Выключить (остановить) ПЛК
SVCREQ 14: Очистить таблицу ошибок
SVCREQ 15: Прочитать последнюю запись в таблице ошибок
SVCREQ 16: Прочитать время с момента включения
SVCREQ 18: Прочитать статус принудительной установки каналов
ввода/вывода
SVCREQ 23: Прочитать контрольную сумму
SVCREQ 26/30: Проверить модули ввода/вывода
SVCREQ 34: Включить режим аналоговой калибровки
SVCREQ 35: Сохранить аналоговую калибровку
17-1
17
Номера функций SVCREQ
Каждый системный запрос имеет свой собственный номер функции, приведенный в
следующей ниже таблице.
Функция #
Описание
1
Изменить/прочитать таймер цикла с постоянным временем
2
Прочитать времена окон
3
Изменить режим окна связи с программатором
4
Изменить режим окна системных коммуникаций
5
зарезервировано
6
Изменить/прочитать количество слов при подсчете
контрольной суммы
7
Изменить/прочитать дату и время суток
8
Сбросить сторожевой таймер
9
Прочитать время с начала цикла
10
Прочитать имя папки
11
Прочитать идентификатор ПЛК
12
зарезервировано
13
Выключить ПЛК
14
Очистить таблицы ошибок
15
Прочитать последнюю запись в таблице ошибок
16
Прочитать время с момента включения
17
зарезервировано
18
Прочитать статус принудительной установки каналов
ввода/вывода
19-22
зарезервировано
23
Прочитать контрольную сумму
26/30
Проверить модули ввода/вывода
27, 28
зарезервировано
29
Прочитать время нахождения в выключенном состоянии
31-33
зарезервировано
34
Включить режим аналоговой калибровки
35
Сохранить аналоговую калибровку
36-255
зарезервировано
17-2
17
Формат функции SVCREQ
Функция SVCREQ имеет три входа и один выход.
enable
SVCREQ
OK
Номер функции
FNC
Начальная ячейка
PARM
Когда SVCREQ получает питание, ПЛК получает запрос на выполнение функции с
указанным номером (FNC). Параметры для функции располагаются, начиная с
адреса, указанного в PARM. Это начало «блока параметров» функции. Количество
16-разрядных ячеек зависит от используемой функции SVCREQ.
Блоки параметров могут быть использованы как для входных параметров функции,
так и для выходных данных, сформированных после выполнения функции.
Поэтому, доступ к возвращаемым функцией данным осуществляется по тому же
адресу, указанному в PARM.
Функция SVCREQ пропускает питание, если не указан неправильный номер
функции, неправильные параметры или недопустимые адреса. Для отдельных
функций SVCREQ возможны дополнительные причины неисправностей.
Параметры функции SVCREQ
Вход/
Варианты
Описание
выход
enable
питание
Системный запрос выполняется, когда на вход
enable подано питание.
FNC
I, Q, M, T, G, R, AI, AQ,
Содержит константу или ячейку с номером
константа
запрашиваемой службы.
PARM
I, Q, M, T, G, R, AI, AQ
Содержит начальный адрес блока параметров
запрашиваемой службы.
ok
питание, отсутствие
ОК включен, если функция выполнена без ошибок.
питания
Пример функции SVCREQ
В этом примере, когда вход разрешения %I0001 включен, вызывается функция
SVCREQ номер 7 с блоком параметров, начинающимся с %R0001. Выходная
катушка %Q0001 включается, если операция выполнена успешно.
%I0001
%Q0001
SVCREQ
CONST
FNC
00007
%R0001
PARM
Глава 17 Функция системного запроса
17-3
17
SVCREQ 1: Изменить/прочитать таймер цикла с
постоянным временем
Используйте SVCREQ 1, чтобы включить или выключить режим цикла с
постоянным временем, изменить время цикла, прочитать, включен ли в данный
момент режим цикла с постоянным временем или прочитать время цикла.
Блок входных параметров для SCVREQ 1
Блок параметров для этой функции имеет длину 2 слова.
Выключить режим цикла с постоянным временем
Чтобы выключить режим цикла с постоянным временем, вызовите функцию
SVCREQ # 1 со следующим блоком параметров:
адрес
0
адрес + 1
игнорируется
Enable Constant Sweep Mode
Чтобы включить режим цикла с постоянным временем, вызовите функцию
SVCREQ # 1 со следующим блоком параметров:
адрес
1
адрес + 1
0 или уставка таймера
Примечание: Если таймер должен использовать новую уставку, введите ее во
втором слове. Если уставка таймера не должна быть изменена, введите 0 во втором
слове. Если уставка таймера еще не существует, ввод 0 приведет к тому, что
функция установит выход ОК в выключенное состояние (0).
Изменить время цикла
Чтобы изменить уставку таймера, не изменяя выбранный режим, вызовите
функцию SVCREQ # 1 со следующим блоком параметров:
адрес
2
адрес + 1
новая уставка таймера
Прочитать текущее состояние цикла с постоянным временем и время
Чтобы прочитать текущий режим цикла и уставку таймера, ничего не изменяя,
вызовите функцию SVCREQ # 1 со следующим блоком параметров:
адрес
3
адрес + 1
игнорируется
17-4
17
Выполнение не удастся, если:
1.
В качестве номера запрашиваемой операции введено число, отличное от 0,
1, 2 или 3:
2.
Время цикла превышает 500 мс (0,5 с).
3.
Режим цикла с постоянным временем включен, а уставка таймера не
задана или ее старое значение равно 0.
После выполнения функция возвращает состояние и уставку таймера в те же самые
ячейки блока параметров:
0 = выключен
адрес
1 = включен
адрес + 1
текущая уставка таймера
Пример SVCREQ 1
В этом примере, если включен контакт OV_SWP, читается уставка таймера, она
увеличивается на 2 миллисекунды, и новое значение уставки посылается ЦПУ.
Блок параметров находится в памяти по адресу %R0050. Поскольку для функций
MOVE и ADD требуется три места по горизонтали, программа в примере
использует дискретную внутреннюю катушку %M0001 в качестве промежуточного
звена для хранения успешного результата выполнения первой строки. В каждом
цикле, в котором OV_SVP не включен, %M0001 выключается.
OV_SWP
%M00001
SVCREQ
(
)
MOVE_
ADDINT
WORD
CONST
IN
Q
CONST
FNC
%R0051
I1
Q
%R00051
00001
00003
%R0050
PARM
CONST
I2
00002
%M00001
MOVE_
SVCREQ
WORD
CONST
IN Q
%R00050
CONST
FNC
00001
00001
%R00050
PARM
Глава 17 Функция системного запроса
17-5
17
SVCREQ 2: Прочитать времена окон
SVCREQ 2 используется для чтения времен окна связи с программатором и окна
системных коммуникаций. Эти окна могут работать в ограниченном режиме или в
режиме выполнения до завершения.
Режим
Значение
Описание
Ограниченный
0
Время выполнения окна ограничено 6 мс. Окно закрывается
режим
когда все задачи выполнены или 6 миллисекунд истекло.
Режим работы до
2
Независимо от установленного определенному окну времени,
завершения
оно действует до выполнения всех поставленных задач (до 400
миллисекунд).
Окно заблокировано, если значение времени равно 0.
Блок выходных параметров для SVCREQ 2
Блок параметров имеет длину 3 слова:
Старший байт Младший байт
адрес
режим
Значение в мс
Окно программатора
Адрес + 1
режим
Значение в мс
Окно системных
коммуникаций
Адрес + 2
должен быть
должен быть 0
зарезервировано
0
Все параметры являются выходными параметрами. Для программирования этой
функции не требуется вводить значения в блок параметров .
Пример SVCREQ 2
В следующем примере, когда установлен разрешающий выход %Q00102, ЦПУ
ПЛК Micro помещает значения текущего времени окон в блок параметров,
начинающийся с ячейки %R0010.
%Q00102
SVCREQ
CONST
FNC
00002
%R0010
PARM
17-6
17
SVCREQ 3: Изменить режим окна связи с
программатором
Используйте SVCREQ 3 для изменения режима окна связи с программатором
(ограниченный или выполнение до завершения). Изменение происходит во время
следующего за вызовом функции цикла CPU. Время окна не может быть изменено;
оно всегда составляет 6мс.
SVCREQ 3 не пропускает питание направо, если режим отличается от 0
(ограниченный) или 2 (выполнение до завершения).
Блок параметров имеет длину 1 слово.
Изменение режима окна связи с программатором
Чтобы изменить окно связи с программатором, введите SVCREQ 3 с этим блоком
параметров:
Старший байт
Младший байт
адрес
режим
6
Пример SVCREQ 3
В следующем примере, когда вход разрешения %I006 переходит в состояние 1, окно
связи с программатором разблокировано, и ему назначено значение времени 6 мс.
Блок параметров находится в ячейке памяти %R0051.
%I0006
SVCREQ
MOVE
WORD
CONST
IN Q
%R0051
CONST
FNC
0006
00003
%R0051
PARM
Глава 17 Функция системного запроса
17-7
17
SVCREQ 4: Изменить режим окна системных
коммуникаций
Используйте SVCREQ 4 для изменения режима окна системных коммуникаций
(ограниченный или выполнение до завершения). Изменение происходит во время
следующего за вызовом функции цикла CPU. Время окна не может быть изменено;
оно всегда составляет 6 мс.
SVCREQ 4 не пропускает питание направо, если выбран режим, отличный от 0
(ограниченный) или 2 (выполнение до завершения).
Блок параметров имеет длину 1 слово.
Изменение режима окна системных коммуникаций
Чтобы изменить окно связи с программатором, введите SVCREQ 4 с этим блоком
параметров:
Старший байт
Младший байт
адрес
режим
6
Пример SVCREQ 4
В следующем примере, когда вход разрешения %I0003 включен, режим окна
системных коммуникаций меняется на режим выполнения до завершения. Блок
параметров находится в ячейке памяти %R0025.
%I0003
SVCREQ
MOVE
WORD
CONST
IN Q
%R0025
CONST
FNC
0200
0004
%R0025
PARM
17-8
17
SVCREQ 6: Изменить/прочитать количество слов при
подсчете контрольной суммы
Используйте SVCREQ 6, чтобы прочитать или изменить количество слов в
программе, используемых при подсчете контрольной суммы. Функция выполняется
успешно, если в качестве запрашиваемой операции не введено число, отличное от 0
или 1.
Форматы блока параметров для SVCREQ 6
Блок параметров имеет длину 2 слова.
Чтобы прочитать количество слов, первое слово блока параметров должно
содержать 0:
адрес
0 (чтение количества слов)
адрес + 1
игнорируется
Функция возвращает текущее количество слов во второе слово блока параметров.
адрес
0
адрес + 1
текущее количество слов
Чтобы изменить количество слов, первое слово блока параметров должно
содержать 1:
адрес
1 (изменение количества слов)
адрес + 1
новое количество слов (от 0 до 32)
ПЛК изменит количество слов для подсчета контрольной суммы на новое значение.
Глава 17 Функция системного запроса
17-9
17
Пример SVCREQ 6
В примере, когда разрешающий контакт FST_SCN замкнут, формируются блоки
параметров для функции контрольной суммы. Позже в программе, если вход
%I0137 включается, SVCREQ читает количество слов, используемых при подсчете
контрольной суммы. Блок параметров для функции чтения находится в ячейках
%R0150-151. Функция ADD добавляет 32 к текущему количеству слов в регистре
%R0151 и помещает результат в ячейку %R0153. Блок параметров для функции
изменения находится в ячейках %R00152-153. Второй SVCREQ изменяет
количество слов на указанное в ячейке %R0153.
FST_SCN
xor
MOVE_
WORD
INT
%R0150
IN1
Q
%R0150
CONST
IN Q
%R0152
00001
%R0150
IN2
%I0137
SVCREQ
SVCREQ
ADD INT
CONST
FNC
%R0151
IN1
Q
%R0153
CONST
FNC
00006
00006
%R0150
PARM
CONST
IN2
%R0152
PARM
00032
17-10
17
SVCREQ 7: Изменить/прочитать дату и время суток
Используйте SVCREQ 7, чтобы прочитать или изменить дату и время суток в ПЛК.
Данные могут быть в двоично-десятичном формате или в формате ASCII. Запись
года возможна двумя или четырьмя цифрами. Функция выполняется успешно, если
в качестве запрашиваемой операции не введено число, отличное от 0 (чтение) или 1
(изменение), или не указан ошибочный формат данных, или данные не передаются в
неизвестном формате.
Формат блока параметров для SVCREQ 7
Для функций даты/времени длина блока параметров зависит от формата данных.
Блок данных может быть двоично-десятичным или ASCII. Двоично-десятичный
формат требует 6 слов; сжатый ASCII требует 12 слов (13 слов для записи года 4
цифрами). Для обоих типов данных:
Часы сохраняются в 24-часовом формате.
День недели - цифровое значение от 1 (воскресенье) до 7 (суббота).
Запись года 2 цифрами
Запись года 4 цифрами
адрес
0 = чтение времени и даты
0 = чтение времени и даты
1 = установка времени и даты
1 = установка времени и даты
адрес + 1
1 = двоично-десятичный
81 = двоично-десятичный
формат
формат
3 = сжатый ASCII формат
83 = сжатый ASCII формат
адрес + 2 до
данные
данные
конца
Слова с 3 до конца блока параметров содержат выходные данные, возвращенные
функцией чтения, или новые значения, устанавливаемые функцией изменения. В
обоих случаях формат этих слов данных один и тот же. При чтении даты и времени
слова (адрес + 2) до конца блока параметров на входе игнорируются.
Глава 17 Функция системного запроса
17-11
17
Содержание блока параметров SVCREQ 7: Двоично-десятичный
формат
В двоично-десятичном формате каждая цифра времени и даты занимает один байт,
поэтому блок параметров состоит из шести слов.
Запись года 2 цифрами
Последний байт шестого слова не используется. При установке даты и времени
этот байт игнорируется; при чтении даты и времени функция возвращает 00.
Формат блока параметров:
Пример:
Старший байт Младший байт
Чтение даты и времени в двоично-
десятичном формате
(Вс., 3 Июля, 1998, 14:45:30)
1 = изменить или
0 =
адрес
0 (читать)
читать
1 двоично-десятичный
адрес + 1
1 двоично-десятичный формат
формат
месяц
год
адрес + 2
07 (Июль)
98 (год)
часы
день месяца
адрес + 3
14 (часы)
03 (день)
секунды
минуты
адрес + 4
30 (секунды)
45 (минуты)
(ноль)
день недели
адрес + 5
00
06 (Пятница)
Запись года 4 цифрами
Блок параметров состоит из шести слов. Используются все байты.
Формат блока параметров:
Пример:
Старший байт Младший байт
Чтение даты и времени в двоично-
десятичном формате
(Вс., 3 Июля, 1998, 14:45:30)
1 = изменить или
0 =
адрес
00
00 (читать)
читать
81h (двоично-десятичный
адрес + 1
00
81h (двоично-
формат, 4 цифры)
десятичный
формат, 4
цифры)
год
год
адрес + 2
19 (год)
98 (год)
день месяца
месяц
адрес + 3
03 (день)
07 (Июль)
минуты
часы
адрес + 4
45 (минуты)
14 (часы)
день недели
секунды
адрес + 5
06 (Пятница)
30 (секунды)
17-12
17
Содержание блока параметров SVCREQ 7: Сжатый ASCII формат
В сжатом ASCII формате каждая цифра времени и даты занимает байт в формате
ASCII. Пробелы и двоеточия встроены в дату для сохранения форматирования при
печати или отображении на дисплее. ASCII формату требуются 12 слов в блоке
параметров (13 слов при записи года 4 цифрами).
Запись года 2 цифрами
Формат блока параметров:
Пример:
Старший байт Младший байт
Чтение даты и времени в сжатом ASCII
формате (Пн, 5 Окт. , 1998, 11:13:00)
1 = изменить или
0 = читать
адрес
0 (читать)
3 (ASCII формат)
адрес + 1
3 (ASCII формат)
год
год
адрес + 2
38 (8)
39 (9)
месяц
(пробел)
адрес + 3
31 (1)
20 (пробел)
(пробел)
месяц
адрес + 4
20 (пробел)
30 (0)
день месяца
день месяца
адрес + 5
35 (5)
30 (первый 0)
часы
(пробел)
адрес + 6
31 (1)
20 (пробел)
:
часы
адрес + 7
3A ( : )
31 (1)
минуты
минуты
адрес + 8
33 (3)
31 (1)
секунды
:
адрес + 9
30 (0)
3A ( : )
(пробел)
секунды
адрес + 10
20 (пробел)
30 (0)
день недели
день недели
адрес + 11
32 (2: Пн.)
30 (первый 0)
Запись года 4 цифрами
Формат блока параметров:
Пример:
Старший байт Младший байт
Чтение даты и времени в сжатом ASCII
формате (Пн, 5 Окт. , 1998, 11:13:00)
1 = изменить или
0 = читать
адрес
0 (читать)
83h (ASCII формат, 4 цифры)
адрес + 1
83h (ASCII формат, 4 цифры)
год (сотни)
год (тысячи)
адрес + 2
39 (9)
31 (1)
год (единицы)
год (десятки)
адрес + 3
38 (8)
39 (9)
месяцы (десятки)
(пробел)
адрес + 4
31 (1)
20 (пробел)
(пробел)
месяцы
адрес + 5
20 (пробел)
30 (0)
(единицы)
день месяца
день месяца
адрес + 6
35 (5)
30 (первый 0)
(единицы)
(десятки)
часы (десятки)
(пробел)
адрес + 7
31 (1)
20 (пробел)
: (двоеточие)
часы (единицы)
адрес + 8
3A ( : )
31 (1)
минуты (единицы)
минуты (десятки)
адрес + 9
33 (3)
31 (1)
секунды (десятки)
: (двоеточие)
адрес + 10
30 (0)
3A ( : )
(пробел)
секунды
адрес + 11
20 (пробел)
30 (0)
(единицы)
день недели
день недели
адрес + 12
32 (2: Пн.)
30 (первый 0)
(единицы)
(десятки)
Глава 17 Функция системного запроса
17-13
17
Пример SVCREQ 7
В примере блок параметров для даты и времени формируется предыдущей логикой.
Запрашиваются текущие дата и время, затем часы устанавливаются на 12 часов дня
с использованием двоично-десятичного формата. Блок параметров начинается с
ячейки памяти %R0300. Массив NOON, содержащий значения 12, 0 и 0,
сформирован в программе ранее. (Массив NOON также должен содержать данные
из %R0300.) Двоично-десятичный формат требует шесть последовательных ячеек
памяти для блока параметров.
FST_SCN
MOVE
MOVE
INT
INT
CONST
IN Q
NOON
CONST
IN Q
MIN_SEC
+04608
+00000
%I0016
%T0001
MOVE_
MOVE
SVCREQ
INT
INT
CONST
IN
Q
%R0300
CONST
IN Q
%R0301
CONST
FNC
+00000
+00001
+00007
%R0300
PARM
%T0001
%I0017
and
ADD INT
WORD
%R0303
IN1
Q
%R0303
%R0303
IN1 Q
%R0303
CONST
IN2
NOON
IN2
00FF
%T0001
%I0017
MOVE_
MOVE
SVCREQ
INT
INT
MIN_SEC
IN Q
%R0304
CONST
IN Q
%R0300
CONST
FNC
+00001
+00007
%R0300
PARM
17-14
17
SVCREQ 8: Сбросить сторожевой таймер
Используйте SVCREQ 8 для сброса сторожевого таймера во время цикла. Обычно,
при наступлении тайм-аута сторожевого таймера, ПЛК выключается без
предупреждения. SVCREQ 8 позволяет сторожевому таймеру не прерывать работу
при выполнении задачи, занимающей много времени (например, при ожидании
ответа от коммуникационной линии).
Предостережение
Убедитесь, что сброс сторожевого таймера не окажет
неблагоприятного воздействия на управляемый процесс.
Формат блока параметров для SVCREQ 8
Эта функция не имеет блока параметров.
Пример SVCREQ 8
В этом примере подача питания через разрешающий выход %Q0027, или вход
%I1476, или внутреннюю катушку %M00010 вызовет сброс сторожевого таймера.
%Q0127
SVCREQ
%I1476
CONST
FNC
0008
%M0010
PARM
%R0100
Глава 17 Функция системного запроса
17-15
17
SVCREQ 9: Прочитать время с начала цикла
Используйте SVCREQ 9, чтобы прочитать время в миллисекундах, прошедшее с
начала цикла. Формат данных - 16-битовое целое число без знака.
Формат блока выходных параметров для SVCREQ 9
Блок параметров является только выходным блоком; он имеет длину одно слово.
адрес
время, прошедшее с начала цикла
Пример SVCREQ 9
В следующем примере читается время, прошедшее с начала цикла, и всегда
помещается в ячейку памяти %R0200. Если оно больше, чем 100 мс, включается
внутренняя катушка %M0200.
SVCREQ
GT INT
%M0200
CONST
FNC
%R0200
IN1
Q
00009
%R0200
PARM
CONST
IN2
0100
17-16
17
SVCREQ 10: Прочитать имя папки
Используйте SVCREQ 10, чтобы прочитать имя текущей папки.
Формат блока выходных параметров для SVCREQ 10
Блок параметров имеет длину четыре слова. Он возвращает восемь символов
ASCII; последний символ - нулевой (00h). Если имя программы имеет менее семи
символов, к концу добавляются нулевые символы.
Младший байт
Старший байт
адрес
символ 1
символ 2
адрес + 1
символ 3
символ 4
адрес + 2
символ 5
символ 6
адрес + 3
символ 7
00
Пример SVCREQ 10
В этом примере, когда разрешающий вход %I0301 включается, в ячейку памяти
%R0099 загружается значение 10, которое является кодом функции чтения имени
папки. Затем вызывается программный блок READ_ID для чтения имени папки.
Блок параметров расположен по адресу %R0100.
%I0301
READ_ID
MOVE
UINT
CONST
IN Q
%R0099
0010
Прграммный блок READ_ID
SVCREQ
%R0099
FNC
%R0100
PARM
Глава 17 Функция системного запроса
17-17
17
SVCREQ 11: Прочитать идентификатор ПЛК
Используйте SVCREQ 11, чтобы прочитать имя ПЛК, выполняющего программу.
Формат блока выходных параметров для SVCREQ 11
Блок параметров имеет длину четыре слова. Он возвращает восемь символов
ASCII; последний символ - нулевой (00h). Если идентификатор ПЛК имеет менее
семи символов, к концу добавляются нулевые символы.
Младший байт
Старший байт
адрес
символ 1
символ 2
адрес + 1
символ 3
символ 4
адрес + 2
символ 5
символ 6
адрес + 3
символ 7
00
Пример SVCREQ 11
В этом примере, когда разрешающий вход %I0302 включается, в ячейку памяти
%R0099 загружается значение 11, которое является кодом функции чтения
идентификатора ПЛК. Затем вызывается программный блок READ_ID для чтения
идентификатора. Блок параметров расположен по адресу %R0100.
%I0303
READ_ID
MOVE
UINT
CONST
IN Q
%R0099
0011
Прграммный блок READ_ID
SVCREQ
%R0099
FNC
%R0100
PARM
17-18
17
SVCREQ 13: Выключить (остановить) ПЛК
Используйте SVCREQ 13, чтобы остановить ПЛК Micro в конце следующего цикла.
Все выходы переходят в выключенное состояние в начале следующего цикла ПЛК.
В таблицу ошибок ПЛК заносится информационная запись "Shut Down PLC"
(Выключение ПЛК). Сканирование ввода-вывода продолжается, как было
сконфигурировано.
Форматы блока параметров для SVCREQ 13
Эта функция не имеет блока параметров.
Пример SVCREQ 13
В примере SVCREQ 13 выполняется, когда ячейка %T0001 установлена в 1. Вход
PARM не используется.
Этот пример использует оператор JUMP, чтобы перейти к концу программы для
принудительного выключения при успешном выполнении функции выключения
ПЛК. Операторы JUMP и LABEL необходимы, т. к. переход в режим Stop не
произойдет до окончания цикла, в котором выполняется функция.
%T0001
END_PRG
SVCREQ
CONST
FNC
00013
%R0100
PARM
END_PRG
Глава 17 Функция системного запроса
17-19
17
SVCREQ 14: Очистить таблицу ошибок
Используйте SVCREQ 14, чтобы очистить таблицу ошибок ПЛК или таблицу
ошибок ввода-вывода. Выход SVCREQ включен, если в качестве запрашиваемой
операции не введено число, отличное от 0 или 1.
Блок входных параметров для SVCREQ 14
Блок параметров для этой функции имеет длину 1 слово. Это блок только входных
параметров. Блок выходных параметров отсутствует.
0 = очистить таблицу
ошибок ПЛК.
1 = очистить таблицу
ошибок ввода-вывода.
Пример SVCREQ 14
В примере таблица ошибок ПЛК очищается, когда входы %I0346 и %I0349
включены. Когда включены входы %I0347 и %I0349, очищается таблица ошибок
ввода-вывода. Когда включены входы %I0348 и %I0349, очищаются обе таблицы.
Блок параметров для таблицы ошибок ПЛК расположен по адресу %R0500; для
таблицы ошибок ввода-вывода блок параметров расположен по адресу %R0550.
Оба блока параметров формируются в программе ранее.
%I0349
%I0346
SVCREQ
%I0348
CONST
FNC
00014
%R0500
PARM
%I0349
%I0347
SVCREQ
%I0348
CONST
FNC
00014
%R0550
PARM
17-20
17
SVCREQ 15: Прочитать последнюю запись в таблице
ошибок
Используйте SVCREQ 15, чтобы прочитать последнюю запись в таблице ошибок
ПЛК или в таблице ошибок ввода-вывода. Выход SVCREQ включен, если в
качестве запрашиваемой операции не введено число, отличное от 0 или 1, и таблица
ошибок не пуста.
Блок входных параметров для SVCREQ 15
Блок параметров для этой функции имеет длину 22 слова. Блок входных параметров
имеет следующий формат:
Запись года 2 цифрами Запись года 4 цифрами
адрес
0 = прочитать таблицу
8 = прочитать таблицу
ошибок ПЛК.
ошибок ПЛК.
1 = прочитать таблицу
9 = прочитать таблицу
ошибок ввода-вывода.
ошибок ввода-вывода.
Глава 17 Функция системного запроса
17-21
17
Формат блока выходных параметров зависит от того, читает ли функция данные из
таблицы ошибок ПЛК или из таблицы ошибок ввода-вывода.
Выходной формат таблицы ошибок
Выходной формат таблицы ошибок
ввода-вывода
ввода-вывода
Старший байт
Младший байт
Старший байт
Младший байт
0
1
резерв
длинное/короткое
адрес + 1
тип памяти
длинное/короткое
резерв
резерв
адрес + 2
Смещение
слот
Крейт
адрес + 3
слот
Крейт
задача
адрес + 4
модуль
шина
действие ошибки
группа ошибки
адрес + 5
точка
код ошибки
адрес + 6
действие ошибки
группа ошибки
специфические
адрес + 7
тип ошибки
категория ошибки
данные ошибки
адрес + 8
специфические
описание ошибки
данные ошибки
до
адрес + 18
минуты
секунды
адрес + 19
минуты
секунды
день месяца
час
адрес + 20
день месяца
час
Запись
год
месяц
адрес + 21
год
месяц
года 2
цифрами
или
Запись
резерв
месяц
адрес + 21
резерв
месяц
года 4
цифрами
год
адрес + 22
год
17-22
17
Значение параметра длинное/короткое
Первый байт слова адрес +1 содержит число, указывающее длину специфических
данных ошибки в записи ошибки. Возможные значения этого параметра:
Таблица ошибок ПЛК
00 = 8 байт (короткое)
01 = 24 байт (длинное)
Таблица ошибок ввода-
02 = 5 байт (короткое)
вывода
03 = 21 байт (длинное)
Пример SVCREQ 15
Когда оба входа %I0250 и %I0251 включены, первая функция Move помещает 0
(читать таблицу ошибок ПЛК) в блок параметров для SVCREQ 15. Когда вход
%I0250 включен, а вход %I0251 выключен, инструкция Move помещает 1 (читать
таблицу ошибок ввода-вывода) в блок параметров для SVCREQ. Блок параметров
расположен по адресу %R0600.
%I0250
%I0251
MOVE_
INT
1
CONST
IN Q
%R0600
00000
%I0250
%I0251
MOVE_
INT
1
CONST
IN Q
%R0600
00000
ALW_ON
SVCREQ
CONST
FNC
00015
%R0600
PARM
Глава 17 Функция системного запроса
17-23
17
SVCREQ 16: Прочитать время с момента включения
Используйте SVCREQ 16, чтобы прочитать время с момента включения системы.
Время с момента включения измеряет время, прошедшее с момента подачи питания
на ПЛК Micro.
Блок выходных параметров для SVCREQ 16
Эта функция имеет только блок выходных параметров. Его длина составляет 3
слова.
адрес
секунды с момента включения
питания (младший разряд)
адрес + 1
секунды с момента включения
питания (старший разряд)
адрес + 2
100 микросекундные отсчеты
Первые два слова содержат прошедшее время в секундах. В последнем слове
содержится количество 100 микросекундных отсчетов в текущей секунде.
Пример SVCREQ 16
В примере, когда включена внутренняя катушка %M0233, SVCREQ с блоком
параметров, расположенным по адресу %R0127, читает время, прошедшее с
момента включения системы и устанавливает внутреннюю катушку %M0234.
Когда катушка %M0233 выключается, SVCREQ с блоком параметров,
расположенным по адресу %R0131, читает прошедшее время снова.
Функция вычитания находит разность между первым и вторым значениями,
сохраненными в блоках параметров SVCREQ. Вычитание игнорирует 100
микросекундные отсчеты.
Разность между двумя значениями помещается в ячейку памяти %R0250.
%M0223
%M0234
S
SVCREQ
CONST
FNC
00016
%R0127
PARM
%M0233
%M0234
%M0234
SVCREQ
sub
R
DINT
CONST
FNC
%R0131
IN1 Q
%R0250
00016
%R0131
PARM
%R0127
IN2
17-24
17
SVCREQ 18: Прочитать статус принудительной
установки каналов ввода/вывода
Используйте SVCREQ 18, чтобы проверить наличие принудительной установки
каких-либо ячеек памяти %I и %Q ПЛК Micro.
Блок выходных параметров для SVCREQ 18
Эта функция имеет только блок выходных параметров. Его длина составляет 1
слово.
адрес
0 = Принудительная установка
отсутствует.
1 = Принудительная установка
присутствует.
Пример SVCREQ 18
Следующий SVCREQ считывает статус принудительной установки каналов
ввода/вывода в ячейку памяти %R1003. Функция проверки равенства сравнивает
значение регистра %R1003 с 1 (константа). Если они равны, функция проверки
равенства включает выход %T0001.
%I0001
SVCREQ
EQ INT
%T0001
CONST
CONST
00018
FNC
00001
IN1 Q
%R1003
PARM
%R1003
IN2
Глава 17 Функция системного запроса
17-25
17
SVCREQ 23: Прочитать контрольную cумму
Используйте SVCREQ 23, чтобы прочитать контрольную сумму прикладной
программы и конфигурации. Выход SVCREQ всегда включен, если на вход
разрешения подано питание.
Блок выходных параметров для SVCREQ 23
Для этой функции блок выходных параметров имеет длину 12 слов в следующем
формате:
Первые два параметра блока выходных параметров показывают достоверность
контрольных сумм программы и конфигурации. (Контрольные суммы программы
могут быть недостоверны во время сохранения в режиме Run.)
адрес
Достоверность контрольной суммы программы
(0 = недостоверна, 1 = достоверна)
адрес + 1
Достоверность контрольной суммы конфигурации
(0 = недостоверна, 1 = достоверна)
адрес + 2
Количество программных блоков (включая _MAIN)
адрес + 3
Размер пользовательской программы в байтах (данные
типа DWORD)
адрес + 5
Аддитивная контрольная сумма программы
адрес + 6
Циклическая контрольная сумма программы (CRC) (данные
типа DWORD)
адрес + 8
Размер конфигурационных данных в байтах
адрес + 9
Аддитивная контрольная сумма конфигурации
адрес + 10
Циклическая контрольная сумма конфигурации (CRC)
(данные типа DWORD)
Пример SVCREQ 23
В примере, когда включен вход %I0251, информация о контрольной сумме
помещается в блок параметров по адресу %R0050 и включается выходная катушка
(%Q0001).
%I0251
%Q0001
SVCREQ
CONST
00023
FNC
%R0050
PARM
17-26
17
SVCREQ 26/30: Проверить модули ввода/вывода
Используйте SVCREQ 26 и 30, чтобы проверить, соответствуют ли установленные
модули запрограммированной конфигурации. Если нет, эти SVCREQ помещают
соответствующие ошибки добавления, потери и несоответствия модулей в таблицы
ошибок ПЛК и/или ввода/вывода. SVCREQ 26 и 30 выполняют одну и туже
функцию.
Чем больше ошибок конфигурации, тем дольше выполняются эти SVCREQ.
У этих SVCREQ нет блока параметров. Они всегда пропускают питание на выход.
Пример SVCREQ 26
В примере, когда включен выход %I0251, SVCREQ проверяет установленные
модули и сравнивает их с запрограммированной конфигурацией. Выход %Q0001
включается после завершения SVCREQ.
%I0251
%Q0001
SVCREQ
CONST
FNC
00026
%R0050
PARM
Глава 17 Функция системного запроса
17-27
17
SVCREQ 29: Прочитать время нахождения в
выключенном состоянии
Используйте SVCREQ 29, чтобы прочитать время, прошедшее между последним
выключением питания и последним включением питания. Если сторожевой таймер
сработал до выключения питания, ПЛК не может подсчитать время нахождения в
выключенном состоянии, поэтому значение времени устанавливается в 0.
Выход SVCREQ всегда включен.
Блок выходных параметров для SVCREQ 29
Эта функция имеет блок только выходных параметров. Блок параметров имеет
длину 3 слова.
адрес
секунды с момента выключения питания
(младший разряд)
адрес + 1
секунды с момента выключения питания
(старший разряд)
адрес + 2
ноль
Первые два слова содержат время в секундах, прошедшее с момента выключения
питания. Последнее слово всегда 0.
Пример SVCREQ 29
В примере, когда включен вход %I0251, время нахождения в выключенном
состоянии помещается в блок параметров, начинающийся с ячейки %R0050.
Выходная катушка (%Q0001) включена.
%I0251
%Q0001
SVCREQ
CONST
00029
FNC
%R0050
PARM
17-28
17
SVCREQ 34: Включить режим аналоговой калибровки
Заключительный шаг калибровки аналогового канала (описание всего процесса
приведено в главе 4) заключается в сохранении значений калибровки во флэш-
памяти. Для этого необходимо использовать две функции SVCREQ, SVCREQ 34 и
35.
SVCREQ 34 переводит ПЛК Micro в режим калибровки. При выполнении SVCREQ
34 ПЛК использует коэффициент и смещение по умолчанию, поэтому Вы можете
начать процесс калибровки. Для SVCREQ 34 не требуется блок параметров.
Примечание: Эта процедура калибровки возможна только для аналоговых каналов
23-канальных ПЛК Micro. Программная калибровка аналоговых модулей
расширения и ПЛК Nano не возможна.
Пример SVCREQ 34
В следующем примере, когда вход разрешения %I0251 включается,
восстанавливаются параметры аналоговой калибровки по умолчанию, и включается
катушка %Q0001.
%I0251
%Q0001
SVCREQ
CONST
00034
FNC
PARM
Глава 17 Функция системного запроса
17-29
17
SVCREQ 35: Сохранение аналоговой калибровки
SVCREQ 35 сохраняет предварительно рассчитанную аналоговую калибровку в
ПЛК Micro. Калибровка может сохраняться в энергонезависимой или в
энергозависимой памяти.
SVCREQ 35 использует блок входных параметров, содержащий новые данные
калибровки и управляющие данные. Содержание блока параметров показано на
следующей странице. После успешного выполнения SVCREQ начинают
использоваться данные новой калибровки.
После выполнения функции SVCREQ ПЛК возвращает статус функции и доступное
количество попыток в 2 слова блока выходных параметров.
Пример SVCREQ 35
В примере, когда контакт %I0003 включен, SVCREQ, блок параметров которого
находится по адресу %R0127, сохраняет аналоговую калибровку в памяти, тип
которой определен в блоке параметров, и включает катушку %Q0023.
%I0003
%Q0234
SVCREQ
CONST
FNC
00035
%R0127
PARM
17-30
17
Блок входных параметров для SVCREQ 35
Блок входных параметров функции SVCREQ 35 содержит следующие 32 входных
слова. Они объясняются далее.
Адрес
Пароль (“CA”
4143H)
адрес + 1
Пароль (“LB” 424CH)
адрес + 2
Место сохранения: 0 для ОЗУ, 1 для флэш-памяти
адрес + 3
Режим калибровки канала AI1 по напряжению: 0: последний, 1: новый, 2: по умолчанию, 3: заводской
адрес + 4
Входной канал 1 %AI0018 Верхнее значение, Напряжение
адрес + 5
Входной канал 1 %AI0018 Нижнее значение, Напряжение
адрес + 6
Входной канал 1 Измеренное верхнее значение, Напряжение (мВ)
адрес + 7
Входной канал 1 Измеренное нижнее значение, Напряжение (мВ)
адрес + 8
Режим калибровки канала AI1 по току: 0: последний, 1: новый, 2: по умолчанию, 3: заводской
адрес + 9
Входной канал 1 %AI0018 Верхнее значение, Ток
адрес + 10
Входной канал 1 %AI0018 Нижнее значение, Ток
адрес + 11
Входной канал 1 Измеренное верхнее значение, Ток( мА)
адрес + 12
Входной канал 1 Измеренное нижнее значение, Ток (мА)
адрес + 13
Режим калибровки канала AI2 по напряжению: 0: последний, 1: новый, 2: по умолчанию, 3: заводской
адрес + 14
Входной канал 2 %AI0019 Верхнее значение, Напряжение
адрес + 15
Входной канал 2 %AI0019 Нижнее значение, Напряжение
адрес + 16
Входной канал 2 Измеренное верхнее значение, Напряжение (мВ)
адрес + 17
Входной канал 2 Измеренное нижнее значение, Напряжение (мВ)
адрес + 18
Режим калибровки канала AI2 по току: 0: последний, 1: новый, 2: по умолчанию, 3: заводской
адрес + 19
Входной канал 2 %AI0019 Верхнее значение, Ток
адрес + 20
Входной канал 2 %AI0019 Нижнее значение, Ток
адрес + 21
Входной канал 2 Измеренное верхнее значение, Ток( мА)
адрес + 22
Входной канал 2 Измеренное нижнее значение, Ток (мА)
адрес + 23
Режим калибровки канала AQ1 по напряжению: 0: последний, 1: новый, 2: по умолчанию, 3:
заводской
адрес + 24
Выходной канал 1 %AQ0012 Верхнее значение, Напряжение
адрес + 25
Выходной канал 1 %AQ0012 Нижнее значение, Напряжение
адрес + 26
Выходной канал 1 Измеренное верхнее значение, Напряжение (мВ)
адрес + 27
Выходной канал 1 Измеренное нижнее значение, Напряжение (мВ)
адрес + 28
Режим калибровки канала AQ2 по напряжению: 0: последний, 1: новый, 2: по умолчанию, 3:
заводской
адрес + 29
Выходной канал 2 %AQ0012 Верхнее значение, Ток
адрес + 30
Выходной канал 2 %AQ0012 Нижнее значение, Ток
адрес + 31
Входной канал 2 Измеренное верхнее значение, Ток( мА)
адрес + 32
Входной канал 2 Измеренное нижнее значение, Ток( мА)
адрес + 33
Статус
адрес + 34
Возможное количество попыток
Глава 17 Функция системного запроса
17-31
17
Блок выходных параметров для SVCREQ 35
Блок выходных параметров функции SVCREQ 35 содержит следующие 2 выходных
слова.
адрес
Статус
адрес + 1
Количество попыток
Описание параметров
Пароль (адрес и адрес+1) должен быть CALB. Если используется неверный пароль,
системный запрос возвращает в слово состояния ошибку 3.
Место сохранения (адрес+2) определяет, куда записывать константы - во флэш-
память или в ОЗУ. Вы можете выбрать ОЗУ (0) и калибровать столько раз, сколько
требуется без записи констант калибровки во флэш-память. Когда вы будете
удовлетворены калибровкой, вы можете выбрать флэш-память (1) и закончить
калибровку. Когда выбрана флэш-память, данные калибровки копируются также и в
ОЗУ. Важно выполнить SVCREQ, в параметре Место сохранения которого
установлена флэш-память, по достижении желаемого состояния калибровки. В
противном случае, значения новой калибровки будут потеряны при выключении
питания устройства.
Режим калибровки (адрес+3) Позволяет вам калибровать отдельный канал в
определенном режиме. Для каждого канала доступны четыре выбора:
0:
Последняя калибровка пользователя. Для канала и режима используется
последняя калибровка из флэш-памяти. (Если калибровка пользователя
отсутствует, используется последняя заводская калибровка.)
1:
Новый. ПЛК вычисляет новые коэффициент и смещение с помощью
значений, заданных в следующих четырех словах. В зависимости от
параметра Место сохранения, значение калибровки заменит значение в
ОЗУ или во флэш-памяти.
2:
По умолчанию. Если выбрана эта опция, используется значение калибровки
по умолчанию.
3:
Заводской. Если выбрана эта опция, используется значение заводской
калибровки.
17-32
17
Статус (адрес+33) Системным запросом возвращается слово состояния:
1=Выполнен
2=Превышено количество попыток
3=Неверный пароль
4=Не в режиме калибровки
5=Неверная контрольная сумма значений калибровки
6=Неверные данные калибровки
Возможное количество попыток (адрес+34) Указывает количество оставшихся
попыток.
Глава 17 Функция системного запроса
17-33
17
17-34
Глава
Протоколы Serial I/O / SNP / RTU
18
Эта глава описывает возможности Serial I/O ПЛК VersaMax Micro, которые могут
использоваться для управления функциями чтения/записи одного из портов
непосредственно из прикладной программы.
Эта глава содержит также инструкции по использованию функции COMMREQ для
конфигурирования последовательных портов CPU для работы по протоколам SNP,
RTU или Serial I/O.
Формат функции COMMREQ
Конфигурирование последовательных портов с помощью функции COMMREQ
Работа RTU слэйв/SNP слэйв с подключенным программатором
Командный блок COMMREQ для конфигурирования протокола SNP
Блок данных COMMREQ для конфигурирования протокола RTU
Блок данных COMMREQ для конфигурирования протокола Serial I/O
Команды COMMREQ для протокола Serial I/O
Инициализация порта
Настройка входного буфера
Очистка входного буфера
Чтение состояния порта
Управление портом
Отмена выполнения
Автонабор
Запись байт
Чтение байт
Чтение потока данных
Подробная информация по протоколам RTU и SNP приведена в документе Serial
Communications User’s Manual (GFK-0582).
18-1
18
Формат функции запроса связи
Протокол Serial I/O реализуется с помощью функций запроса связи (COMMREQ).
Функции протокола, такие как передача символа через последовательный порт или
ожидание входного символа, реализуются с помощью блока COMMREQ.
COMMREQ требует, чтобы все его управляющие данные были размещены в
правильной последовательности (в командном блоке) в памяти ПЛК до его
выполнения. COMMREQ должен быть вызван контактом импульсной катушки для
предотвращения многократной передачи данных. Для пересылки слов и создания
командного блока в таблице регистров следует использовать несколько команд
Block Move (BLKMV).
Функция COMMREQ имеет три входа и один выход. Когда функция получает
питание, командный блок данных пересылается в указанный модуль.
Enable
COMM_
REQ
Первое слово командного
IN
FT
блока
Размещение
SYSID
Указатель задачи
TASK
Параметры функции COMMREQ
Вход/
Варианты
Описание
выход
enable
питание
Запрос связи выполняется, когда функция включена.
IN
R, AI, AQ
IN содержит первое слово командного блока.
SYSID
I, Q, M, T, G, R,
SYSID содержит номер крейта (старший значащий байт) и номер слота (младший
AI, AQ,
значащий байт) устройства. Для CPU, SYSID должен определить крейт/слот - 0.
константы
TASK
R AI, AQ,
TASK указывает порт, назначенный для выполнения функции:
константа
TASK 19 для порта 1
TASK 20 для порта 2
FT
питание,
Выход FT включается, если при выполнении COMMREQ обнаружены ошибки:
отсутствие
•
Отсутствует указанный целевой адрес (SYSID).
питания
•
Указанная задача не применима для устройства (TASK).
•
Длина данных равна 0.
•
Адрес указателя состояния устройства (в командном блоке) не
существует. (применяется только для COMMREQ высокоскоростного
счетчика)
18-2
18
Командный блок для функции COMMREQ
Командный блок начинается с адреса, указанного в параметре IN функции
COMMREQ. Размер командного блока зависит от количества данных, передаваемых
устройству.
Командный блок содержит данные обмена с другим устройством и информацию,
касающуюся выполнения функции COMMREQ. Командный блок имеет следующую
структуру:
адрес
Длина (в словах)
адрес + 1
Флаг Wait/No Wait (ждать/не ждать)
адрес + 2
Область памяти статуса
адрес + 3
Смещение области статуса
адрес + 4
Значение тайм-аута простоя
адрес + 5
Максимальное время связи
адрес + 6 - адрес +
Блок данных
133
Пример функции COMMREQ
В примере, когда %M0021 находится в состоянии 1, командный блок,
начинающийся с регистра %R0032, передается в порт 2 (TASK = 20) CPU (крейт 0,
слот 0). Если при обработке COMMREQ происходит ошибка, бит %Q0110
устанавливается в 1.
%M0021
|
|
COMM
REQ
%Q0110
%R0032
IN
FT
(
)
CONST
SYSID
0000
CONST
TASK
00020
Глава 18 Протоколы Serial I/O / SNP / RTU
18-3
18
Конфигурирование последовательных портов с
помощью функции COMMREQ
В приведенных ниже таблицах указаны значения командного блока, требуемые для
настройки последовательного порта для работы по протоколам SNP, RTU и Serial
I/O. Все значения приведены в шестнадцатиричном формате, если не указано иное.
Команды BLKMV, используемые для формирования командного блока, описаны в
примере.
Синхронизация
Если COMMREQ конфигурирования порта передан в последовательный порт, к
которому в данный момент подключен мастер SNP/SNPX (например,
программатор), конфигурация последовательного порта, указанная COMMREQ, не
вступит в силу до тех пор, пока ЦПУ не определит потерю мастера SNP/SNPX. Это
происходит через сконфигурированный промежуток времени T3’ после отключения
мастера. Статусное слово COMMREQ конфигурирования порта обновляется сразу,
как только CPU проверит, допустима ли указанная конфигурация. Это означает, что
значение успешного прохождения COMMREQ может быть возвращено COMMREQ
конфигурирования порта до действительного вступления в силу указанной
конфигурации.
Передача другого COMMREQ в тот же порт
После инсталляции нового протокола последовательного порта, прикладная
программа должна ждать по крайней мере 2 секунды перед посылкой порту каких-
либо COMMREQ по этому протоколу. Это правило применяется к новому
протоколу порта, инсталлированному путем сохранения новой конфигурации
оборудования или через COMMREQ конфигурирования порта. Если порт
сконфигурирован для использования протокола Serial I/O, этот период ожидания
должен следовать также за каждым переходом ПЛК Micro из режима Stop в режим
Run.
Недопустимые конфигурации порта
COMMREQ конфигурирования протоколов порта ПЛК Micro ограничиваются
протоколами, поддерживаемыми данным портом, как описано в Главе 8 (разделы
Конфигурирование Порта 1 и Порта 2). Любые запросы связи с недопустимой
конфигурацией порта будут недействительными.
18-4
18
Работа в режиме RTU слэйв/SNP слэйв с подключенным
программатором
Программатор (мастер-устройство SNP/SNPX) может быть подключен к порту 1
или порту 2, несмотря на то, что порт находится в режиме RTU слэйв. При
многоточечных подключениях ПЛК Micro должен быть сконфигурирован так,
чтобы использовать соответствующий ID ПЛК. Заметьте, что при многоточечном
SNP подключении к порту, в данный момент сконфигурированному для работы в
режиме RTU, SNP ID связанный с настройками ПЛК Micro, должен соответствовать
ID многоточечного подключения.
Чтобы быть распознанным, программатор должен использовать те же самые параметры
последовательного соединения (скорость, паритет, количество стоповых битов и т. д.),
что и протокол RTU слэйв, действующий в настоящий момент.
Когда ПЛК Micro опознает программатор, ПЛК Micro делает активным протокол
SNP слэйв вместо RTU слэйв. Значения SNP ID, времени переключения модема и
времени простоя по умолчанию для этого нового сеанса связи SNP слэйв берутся из
настроек конфигурации ПЛК Micro, а не из конфигурации порта 1 или порта 2.
Соединение должно быть установлено в течение 12 секунд. Когда программатор
подключен, может осуществляться обычная связь с программатором.
(Невозможность установления связи программатором в течение 12 секунд считается
потерей связи с программатором).
Программатор может переслать новый протокол через конфигурацию или через
COMMREQ настройки последовательного порта. (COMMREQ, не поддерживаемые
протоколом SNP слэйв, игнорируются). Если получен новый протокол, он не вступит в
силу до тех пор, пока не будет отключен программатор.
После отключения программатора выполняется небольшая задержка (равная
сконфигурированному SNP тайм-ауту T3’) перед тем, как ПЛК Micro определит
отсутствие программатора. В течение этого времени порт сообщения не
обрабатывает. ПЛК Micro определяет отключение программатора по истечению
тайм-аута протокола SNP слэйв. Таким образом, важно соблюдать осторожность
при отключении тайм-аутов, используемых протоколом SNP слэйв.
Когда ПЛК Micro определяет отключение, он восстанавливает протокол RTU слэйв,
если не был получен новый протокол. В этом случае ПЛК Micro устанавливает
новый протокол.
Пример
1.
Порт 1 работает по протоколу RTU слэйв на скорости 9600 бод.
2.
Программатор подключен к порту 1. Программатор использует скорость
9600 бод.
3.
ПЛК Micro устанавливает для порта 1 протокол SNP слэйв и программатор
связывается обычным образом.
Глава 18 Протоколы Serial I/O / SNP / RTU
18-5
18
4.
Программатор записывает новую конфигурацию для порта 1. Новая
конфигурация устанавливает порту протокол SNP слэйв на скорости 4800
бод (это не вступит в силу, пока не прервется связь между портом и
программатором).
5.
5. Когда связь между ПЛК Micro и программатором прервется, вступит в
силу новая конфигурация.
18-6
18
Командный блок COMMREQ конфигурирования протокола SNP
Значения
Содержание
Адрес
10H
Длина блока данных
Адрес + 1
0 = No Wait
Флаг WAIT/NOWAIT (ждать/не ждать)
Адрес + 2
0008 = %R, память регистров
Тип памяти слова состояния
Адрес + 3
Адрес слова состояния COMMREQ
Смещение слова состояния
(отсчитывается от нуля, в отличие от
регистров, отсчитываемых от 1. Например,
значение 99 дает адрес слова состояния
100)
Адрес + 4
0 (Используется только в режиме Wait/No
Значение тайм-аута простоя
Wait)
Адрес + 5
0 (Используется только в режиме Wait/No
Максимальное время связи
Wait)
Адрес + 6
FFF0H
Управляющее слово (настройка
последовательного порта)
Адрес + 7
0001
Протокол: 1=SNP
Адрес + 8
0000=слэйв, 0001=мастер
Режим порта
Адрес + 9
6=19200, 5=9600, 4=4800, 3=2400, 2=1200,
Скорость обмена
1=600, 0=300
Адрес + 10
0 = нет, 1 = нечетный, 2 = четный
Четность
Адрес + 11
1 = нет
Контроль связи
Адрес + 12
0 = нет, 1 = 10мс, 2 = 100мс, 3 = 500мс
Задержка переключения
Адрес + 13
0 = длинный, 1 = средний, 2 = короткий, 3 =
Тайм-аут
нет
Адрес + 14
1 = 8 бит
Количество бит на символ (в слове)
Адрес + 15
0 = 1 стоповый бит, 1 = 2 стоповых бита
Стоповые биты
Адрес + 16
не используется
Интерфейс
Адрес + 17
не используется
Дуплексный режим
Адрес + 18
устанавливается пользователем*
Байты 1 и 2 идентификатора
устройства
Адрес + 19
устанавливается пользователем*
Байты 3 и 4 идентификатора
устройства
Адрес + 20
устанавливается пользователем*
Байты 5 и 6 идентификатора
устройства
Адрес + 21
устанавливается пользователем*
Байты 7 и 8 идентификатора
устройства
*
Идентификатор устройства портов SNP слэйв упакован в слова так,
что левый символ находится в правом байте слова. Например, если
первые два символа “A” и “B,” Адрес + 18 будет содержать
шестнадцатиричное значение 4241.
Глава 18 Протоколы Serial I/O / SNP / RTU
18-7
18
Блок данных COMMREQ конфигурирования протокола RTU
Значения
Содержание
Первые 6 слов
Зарезервированы для использования
COMMREQ.
Адрес + 6
FFF0H
Команда
Адрес + 7
0003
Протокол: 0003=RTU
Адрес + 8
0000
Режим порта 0000=слэйв
Адрес + 9
6=19200, 5=9600, 4=4800, 3=2400,
Скорость обмена
2=1200, 1=600, 0=300
Адрес + 10
0 = нет, 1 = нечетный, 2 = четный
Четность
Адрес + 11
0 = аппаратный, 1 = нет
Контроль связи
Адрес + 12
не используется
Задержка переключения
Адрес + 13
не используется
Тайм-аут
Адрес + 14
не используется
Количество бит на символ (в слове)
Адрес + 15
не используется
Стоповые биты
Адрес + 16
не используется
Интерфейс
Адрес + 17
0 = 2-проводной, 1 = 4-проводной
Дуплексный режим
Адрес + 18
Адрес станции (1-247)
Идентификатор устройства
Адрес + 19—21
не используется
Идентификатор устройства
18-8
18
Блок данных COMMREQ конфигурирования протокола Serial I/O
Значения
Содержание
Первые 6 слов
Зарезервированы для использования
COMMREQ.
Адрес + 6
FFF0H
Команда
Адрес + 7
0005
Протокол: 0005=Serial IO
Адрес + 8
0=слэйв
Режим порта
Адрес + 9
6=19200, 5=9600, 4=4800,
Скорость обмена
3=2400, 2=1200, 1=600, 0=300
Адрес + 10
0 = нет, 1 = нечетный, 2 =
Четность
четный
Адрес + 11
0 = аппаратный, 1 = нет
Контроль связи
Адрес + 12
0 = нет
Задержка переключения
Адрес + 13
0 = длинный
Тайм-аут
Адрес + 14
0=7 бит, 1=8 бит
Количество бит на символ (в слове)
Адрес + 15
0 = 1 стоповый бит, 1 = 2
Стоповые биты
стоповых бита
Адрес + 16
не используется
Интерфейс
Адрес + 17
0 = 2-проводной, 1 = 4-
Дуплексный режим
проводной
Адрес + 18—21
не используется
Идентификатор устройства
Глава 18 Протоколы Serial I/O / SNP / RTU
18-9
содержание .. 11 12 13 14 ..
|
||
|
|
|