22 октября 2018
Ниже описываются примеры сценариев для диммера DDM845R.
В перечне продукции РД есть диммер DRM845R - это транзисторный модуль исполнительный диммерный 4х канальный, который предназначен для управления светодиодными лампами на 220В с изменением яркости этих светильников.
В модуле есть встроенные сценарии, с помощью которых можно организовать взаимодействие выходов от входов.
Сценарии записываются в регистры Holding Registers, начиная с адреса 100.
Их можно записать с помощью любой программы, работающей по протоколу Modbus RTU или Modbus TCP.
Примеры сценария: Кнопка диммирования.
Логика работы сценария следующая: при кратковременном нечетном нажатии на кнопку (указанную в R1) включится канал (указанный в R2), при кратковременном четном нажатии на кнопку (указанную в R1) выключится канал (указанный в R2). При нечетном удержании кнопки будет плавное увеличение яркости, при четном удержании будет плавное уменьшение яркости.
Регистр - Значение
R0 - 21
R1 - Тип регистра входа: 2 - Discrete Input
В качестве входной кнопки может выступать любой входной регистр, но лучше использовать 2 - Discrete Input.
R2 - Номер канала входа - кнопки: 0, 1, 2, 3, 4, 5, 6, 7
R3 - Номер канала выхода - лампы: 0, 1, 2, 3
R4 - Время увеличения или уменьшения яркости на единицу в миллисекундах влияет на скорость изменения яркости. Оптимальное значение 10.
R5 - Время удержании кнопки до перехода в режим изменения яркости в миллисекундах. Оптимальное значение 1000 (т.е. 1 сек).
Пример записи сценария в регистры Holding Registers.
HR100 = 21 (команда кнопки диммирования)
HR101 = 2 (DI)
HR102 = 0 (первый вход)
HR103 = 0 (первый выход)
HR104 = 10 (время яркости)
HR105 = 1000 (время кнопки)
HR120 = 21 (команда кнопки диммирования)
HR121 = 2 (DI)
HR122 = 1 (второй вход)
HR123 = 1 (Второй выход)
HR124 = 10 (время яркости)
HR125 = 1000 (время кнопки)
HR140 = 21 (команда кнопки диммирования)
HR141 = 2 (DI)
HR142 = 2 (третий вход)
HR143 = 2 (третий выход)
HR144 = 10 (время яркости)
HR145 = 1000 (время кнопки)
HR160 = 21 (команда кнопки диммирования)
HR161 = 2 (DI)
HR162 = 3 (четвертый вход)
HR163 = 3 (четвертый выход)
HR164 = 10 (время яркости)
HR165 = 1000 (время кнопки)
Примеры сценария: Управление яркостью выходов от аналоговых входов напряжением 0-10В.
Логика работы сценария следующая: при изменении напряжения на входе в диапазоне от 0 до 10В на выходе будет меняться ширина полупериода, изменяя яркость лампы.
Поскольку входы рассчитаны на напряжение до 3.3В, то напряжение 10В нужно подавать через резистивный делитель на 4. Нужно использовать два резистора на 15КОм и 4.7КОм.
Рег Значение
100 1 = Линейный K*x/N+B
101 Входной регистр источника данных IR(x)
102 Коэффициент K
103 Коэффициент N
104 Коэффициент B
105 Выходной Holding register HR, для плавного управления выходом (регистры от 40 до 43)
В регистры записываются следующие значения:
HR100 = 1 (команда)
HR101 = 4 (номер входа IR) первый вход
HR102 = 1 (Коэффициент K)
HR103 = 31 (Коэффициент N)
HR104 = 0 (Коэффициент B)
HR105 = 40 (Выходной Holding register HR) первый выход
HR120 = 1 (команда)
HR121 = 5 (номер входа IR) второй вход
HR122 = 1 (Коэффициент K)
HR123 = 31 (Коэффициент N)
HR124 = 0 (Коэффициент B)
HR125 = 41 (Выходной Holding register HR) второй выход
HR140 = 1 (команда)
HR141 = 6 (номер входа IR) третий вход
HR142 = 1 (Коэффициент K)
HR143 = 31 (Коэффициент N)
HR144 = 0 (Коэффициент B)
HR145 = 42 (Выходной Holding register HR) третий выход
HR160 = 1 (команда)
HR161 = 7 (номер входа IR) четвертый вход
HR162 = 1 (Коэффициент K)
HR163 = 31 (Коэффициент N)
HR164 = 0 (Коэффициент B)
HR165 = 43 (Выходной Holding register HR) четвертый выход
При изменении напряжения на входе от 0 до 2.5В на выходе будет плавно изменяться яркость лампочек.
Диммер поддерживает следующие инструкции встроенных сценариев:
Линейный K * x / N + B
Рег Значение
100 1 = Линейный K*x/N+B
101 Входной регистр источника данных IR(x)
102 Коэффициент K
103 Коэффициент N
104 Коэффициент B
105 Выходной Holding register HR, для плавного управления выходом (регистры от 40 до 43)
Результат выполнения алгоритма n запишется в регистр результата IR100+n = K*x/N+B.
В "линейном алгоритме" пишутся в оба регистра и в IR100+n и в HR что указан в 105 реги-стре.
Пороговое реле:
Рег Значение
100 2 - Пороговое реле
101 Входной регистр источника данных IR(x)
102 Coils. Если не используется, то записать значение больше 8.
103 Пороговое значение
104 Гистерезис
Результат выполнения алгоритма n запишется в регистр результата IR100+n = 0 или 1.
Пороговое реле, инверсное значение:
Рег Значение
100 3 - Пороговое инверсное реле
101 Входной регистр источника данных IR(x)
102 Coils. Если не используется, то записать значение больше 4.
103 Пороговое значение
104 Гистерезис
Результат выполнения алгоритма n запишется в регистр результата IR100+n = 0 или 1.
Триггер:
Рег Значение
100 4
101 Входной регистр источника данных (дискретный вход) DI(x)
102 Coils. Если не используется, то записать значение больше 4.
103 Время дребезга, мс
Результат выполнения алгоритма n запишется в регистр результата IR100+n = 0 или 1.
Состояние выхода = состоянию входа:
Рег Значение
100 5
101 Входной регистр источника данных (дискретный вход) DI(x)
102 Coils. Если не используется, то записать значение больше 4.
103 Инверсия
Результат выполнения алгоритма n запишется в регистр результата IR100+n = 0 или 1. Входной параметр - дискретный вход.
Таймер
Рег Значение
100 6
101 Тип таймера: 0 - Выбранная дата; 1 – Ежемесячно; 2 – Еженедельно; 3 – Ежедневно; 4 - Каждый час; 5 - Каждую минуту; 6 - Интервал
102 104 Время: часы (для таймеров 0...3), минуты (для 0...4), секунды (для 0...6)
105 107 Дата: день (от 1 до 31, для типов 0...1), месяц (от 1 до 12, для типа 0), год (от 0 до 99, для типа 0)
108 Маска дней недели (для таймера типа - Еженедельно). 1 - ПН, 2 - ВТ, 4 -СР, 8 - ЧТ, 16 - ПТ, 32 - СБ, 64 – ВС
109 Выходное реле или выходной Holding регистр. При значении данного параметра в диапазоне 40...44 используется Holding регистр, меньше 8, то - реле. Если не используется, то записать значение больше 45.
110 Значение, записываемое в реле (0 или 1) или выходной Holding регистр (0 ... 65535)
Датчик HIH4010
Рег Значение
100 7
101 Входной регистр (дискретный вход) источника данных IR(x) (24...31)
102 Коэффициент Offset - из документации на датчик, Vout @ 0%RH в мВ
103 Коэффициент Vout_at_75 - из документации на датчик, Vout @ 75%RH в мВ
Датчик LM235
Рег Значение
100 8
101 Входной регистр источника данных IR(x) (24...31)
Плавное изменение
Рег Значение
R0 9
R1 Входной регистр источника данных IR(x), обычно результат от алгоритма типа "Триггер" или "Состояние выхода = состоянию входа"
R2 Значение входного регистра, по которому срабатывает алгоритм
R3 Выходной Holding регистр, для плавного управления выходом (регистры от 40 до 43)
R4 Направление изменения выходного регистра: 0 - увеличение, 1 - уменьшение
R8 Минимальное или максимальное значение выходного регистра (в зависимости от значения регистра 104)
R6 Время изменения на единицу, мс
Кнопка диммирования
Рег Значение
R0 21
R1 Тип регистра: 0-Const, 1-Coils, 2-Discrete Input, 3-Holding Reg, 4-Input Reg
R2 Входной регистр (дискретный вход) источника данных DI(x) (0, 1, 2, 3)
R3 Выходной регистр HR, для плавного управления (регистры 0, 1, 2, 3)
R4 Время изменения яркости на единицу, мс (оптимально 10)
R5 Время удержания кнопки, мс (оптимально 1000)
Логика работы сценария следующая: при кратковременном нечетном нажатии на кнопку (указанную в R1) включится канал (указанный в R2), при кратковременном четном нажатии на кнопку (указанную в R1) выключится канал (указанный в R2). При нечетном удержании кнопки будет плавное увеличение яркости, при четном удержании будет плавное уменьшение яркости. Время удержании кнопки до перехода в режим изменения яркости указывается в R4 в миллисекундах. Оптимальное значение 1 сек – 1000. Время увеличения яркости на единицу (влияет на скорость увеличения яркости) указывается в R3 в миллисекундах. Оптимально 10 мС.
MATH - Арифметические операции R2 = R4 (операция) R7:
регистр параметр
R0 10 - R2 = R4 (операция) R7
R1 Тип регистра: 1-Coils, 3-Holding Reg, 4-Input Reg
R2 Выходной регистр
R3 Тип регистра: 0…5
R4 Входной операнд 1
R5 Функция: 0- «+», 1- «-», 2- «*», 3- «/», 4- «%», 5- «++», 6- «--»
R6 Тип регистра
R7 Входной операнд 2
Логика работы сценария «арифметическая операция» следующая: R2 = R4 (операция) R7; R2=R4 + R7;
Функция может быть:
значение функция
0 «+» сложение
1 «-» вычитание
2 «*» умножение
3 «/» деление
4 «%» остаток от деления
5 «++» прибавление к результату
6 «--» вычитание из результата
Сохранение результата в константу и Discrete Inputs невозможно.
Результат записывается в Input Registers со смещением 100. При записи в R2 значения 23, запишется в регистр IR123.
BITS - Побитовые операции R2 = R4 (операция) R7:
регистр параметр
R0 11 - R2 = R4 (операция) R7
R1 Тип регистра: 1-Coils, 3-Holding Reg, 4-Input Reg
R2 Выходной регистр
R3 Тип регистра: 0…5
R4 Входной операнд 1
R5 Операция: 0- «~», 1- «&», 2- «|», 3- «^», 4- «<<», 5- «>>»
R6 Тип регистра
R7 Входной операнд 2
Логика работы сценария «Побитовые операции» следующая: R2 = ~ R4 или R2 = R4 (операция) R7.
Операция может быть:
значение Операция
0 «~» побитная инверсия только над первым операндом
1 «&» логическая И
2 «|» логическая ИЛИ
3 «^» Побитовое исключающее ИЛИ
4 «<<» побитовый сдвиг влево
5 «>>» побитовый сдвиг вправо
Сохранение результата в «константу» и «Discrete Inputs» невозможно.
MOV - Присвоение R2 = R4:
регистр параметр
R0 12 – R2 = R4
R1 Тип регистра: 1-Coils, 3-Holding Reg, 4-Input Reg, 5-Timer
R2 Выходной регистр
R3 Тип регистра: 0…5
R4 Входной операнд
Логика работы сценария «Присвоение» следующая: R2 = R4. Значение из R4 записывается в R2.
IFG - Логические операции IFG (R2 условие R5):
регистр параметр
R0 13 - IFG (R2 условие R5) переход
R1 Тип регистра: 0…5
R2 Входной операнд 1
R3 Функция: 0- «==», 1- «!=», 2- «>», 3- «<», 4- «>=», 5- «<=», 6- «!», 7- «&&», 8- «||»
R4 Тип регистра: 0…5
R5 Входной операнд 2
R6 Переход (возможные значения 0-127)
Логика работы сценария «Логические операции» следующая:
IFG (R2 условие R5) тогда выполнится переход CALL на адрес указанного сценария, иначе выполнится следующая операция. При переходе запоминается адрес выхода, чтобы после выполнения подпрограммы вернуться командой RETURN. Для выполнения одного из действий дополнительно используйте команду перехода GOTO. Если номер сценария указан больше 127, то будет переход на номер 0.
значение функция
0 «==» если равно
1 «!=» если не равно
2 «>» если больше
3 «<» если меньше
4 «>=» если больше или равно
5 «<=» если меньше или равно
6 «!» логическая операция НЕ
7 «&&»логическая операция И
8 «||»логическая операция ИЛИ
Например:
2: If (IR2 > 30) переход на 5; иначе выполнится следующая операция
3: MOV IR25 = 1
4: GOTO 6
5: IR25 = 0
6: R2 = R4 & R7
IFE - Логические операции IF (R2 условие R5):
регистр параметр
R0 14 - IFE (R2 условие R5) тогда R6=R8 иначе R6=R9
R1 Тип регистра: 0…5
R2 Входной операнд 1
R3 Функция: 0- «==», 1- «!=», 2- «>», 3- «<», 4- «>=», 5- «<=», 6- «!», 7- «&&», 8- «||»
R4 Тип регистра: 0…5
R5 Входной операнд 2
R6 Тип регистра: 0…6
R7 Выходной регистр
R8 Тип регистра: 0…5
R9 Входной операнд если верно
Логика работы сценария «Логические операции» следующая:
IFE (R2 условие R5) тогда R7=R9. Действие выполняется однократно и не будет постоянно присваивать значение при верном условии. Присвоение выполнится снова только когда условие станет неверно и снова верно.
значение функция
0 «==» если равно
1 «!=» если не равно
2 «>» если больше
3 «<» если меньше
4 «>=» если больше или равно
5 «<=» если меньше или равно
6 «!» логическая операция НЕ
7 «&&»логическая операция И
8 «||»логическая операция ИЛИ
GOTO - Переход:
регистр параметр
R0 15 - GOTO
R1 Переход (возможные значения 0-127)
Команда GOTO переход позволяет перепрыгнуть несколько сценариев. Сценарии выполняются последовательно от 0 до 127 и снова повторяются. Команда GOTO может выполняться совместно с условием IF. Если номер сценария указан больше 127, то будет переход на номер 0.
Например:
2: If (IR2 > 30) переход на 5, иначе выполнится следующая операция
3: MATH R7 = R4 * R7
4: GOTO 6
5: MATH R7 = R4 - R7
6: BITS R12 = R4 & R7
CALL – Переход в подпрограмму:
регистр Параметр
R0 16 – CALL
R1 Переход (возможные значения 0-127)
Логика работы сценария «Переход» следующая: CALL номер сценария.
Эта команда работает так же, как и GOTO, но запоминает номер своего сценария. Команда переход позволяет перепрыгнуть несколько сценариев. Может выполняться совместно с условием. Если номер сценария указан больше 127, то будет переход на номер 0.
RETURN – Выход из подпрограммы:
регистр Параметр
R0 17 – RETURN
Логика работы сценария «Переход» следующая: RETURN.
Команда ставится в конце сценария подпрограммы и делает переход на следующий шаг, откуда был сделан вызов CALL. Например:
2: If (IR2 > 30) переход на 100, иначе выполнится следующая операция
3: MATH IR28 = IR38 * IR7
4: MATH IR7 = DI4 - IR7
5: BITS R12 = R4 & R7
6: MOV Coil3=R12
99: GOTO 0; переход в начало алгоритма
100: MOV IR7 = 25
101: MATH IR38 = DI4 * IR7
102: RETURN; возврат из подпрограммы
В модуле есть встроенные сценарии, с помощью которых можно организовать взаимодействие выходов от входов.
Сценарии записываются в регистры Holding Registers, начиная с адреса 100.
Их можно записать с помощью любой программы, работающей по протоколу Modbus RTU или Modbus TCP.
Примеры сценария: Кнопка диммирования.
Логика работы сценария следующая: при кратковременном нечетном нажатии на кнопку (указанную в R1) включится канал (указанный в R2), при кратковременном четном нажатии на кнопку (указанную в R1) выключится канал (указанный в R2). При нечетном удержании кнопки будет плавное увеличение яркости, при четном удержании будет плавное уменьшение яркости.
Регистр - Значение
R0 - 21
R1 - Тип регистра входа: 2 - Discrete Input
В качестве входной кнопки может выступать любой входной регистр, но лучше использовать 2 - Discrete Input.
R2 - Номер канала входа - кнопки: 0, 1, 2, 3, 4, 5, 6, 7
R3 - Номер канала выхода - лампы: 0, 1, 2, 3
R4 - Время увеличения или уменьшения яркости на единицу в миллисекундах влияет на скорость изменения яркости. Оптимальное значение 10.
R5 - Время удержании кнопки до перехода в режим изменения яркости в миллисекундах. Оптимальное значение 1000 (т.е. 1 сек).
Пример записи сценария в регистры Holding Registers.
HR100 = 21 (команда кнопки диммирования)
HR101 = 2 (DI)
HR102 = 0 (первый вход)
HR103 = 0 (первый выход)
HR104 = 10 (время яркости)
HR105 = 1000 (время кнопки)
HR120 = 21 (команда кнопки диммирования)
HR121 = 2 (DI)
HR122 = 1 (второй вход)
HR123 = 1 (Второй выход)
HR124 = 10 (время яркости)
HR125 = 1000 (время кнопки)
HR140 = 21 (команда кнопки диммирования)
HR141 = 2 (DI)
HR142 = 2 (третий вход)
HR143 = 2 (третий выход)
HR144 = 10 (время яркости)
HR145 = 1000 (время кнопки)
HR160 = 21 (команда кнопки диммирования)
HR161 = 2 (DI)
HR162 = 3 (четвертый вход)
HR163 = 3 (четвертый выход)
HR164 = 10 (время яркости)
HR165 = 1000 (время кнопки)
Примеры сценария: Управление яркостью выходов от аналоговых входов напряжением 0-10В.
Логика работы сценария следующая: при изменении напряжения на входе в диапазоне от 0 до 10В на выходе будет меняться ширина полупериода, изменяя яркость лампы.
Поскольку входы рассчитаны на напряжение до 3.3В, то напряжение 10В нужно подавать через резистивный делитель на 4. Нужно использовать два резистора на 15КОм и 4.7КОм.
Рег Значение
100 1 = Линейный K*x/N+B
101 Входной регистр источника данных IR(x)
102 Коэффициент K
103 Коэффициент N
104 Коэффициент B
105 Выходной Holding register HR, для плавного управления выходом (регистры от 40 до 43)
В регистры записываются следующие значения:
HR100 = 1 (команда)
HR101 = 4 (номер входа IR) первый вход
HR102 = 1 (Коэффициент K)
HR103 = 31 (Коэффициент N)
HR104 = 0 (Коэффициент B)
HR105 = 40 (Выходной Holding register HR) первый выход
HR120 = 1 (команда)
HR121 = 5 (номер входа IR) второй вход
HR122 = 1 (Коэффициент K)
HR123 = 31 (Коэффициент N)
HR124 = 0 (Коэффициент B)
HR125 = 41 (Выходной Holding register HR) второй выход
HR140 = 1 (команда)
HR141 = 6 (номер входа IR) третий вход
HR142 = 1 (Коэффициент K)
HR143 = 31 (Коэффициент N)
HR144 = 0 (Коэффициент B)
HR145 = 42 (Выходной Holding register HR) третий выход
HR160 = 1 (команда)
HR161 = 7 (номер входа IR) четвертый вход
HR162 = 1 (Коэффициент K)
HR163 = 31 (Коэффициент N)
HR164 = 0 (Коэффициент B)
HR165 = 43 (Выходной Holding register HR) четвертый выход
При изменении напряжения на входе от 0 до 2.5В на выходе будет плавно изменяться яркость лампочек.
Диммер поддерживает следующие инструкции встроенных сценариев:
Линейный K * x / N + B
Рег Значение
100 1 = Линейный K*x/N+B
101 Входной регистр источника данных IR(x)
102 Коэффициент K
103 Коэффициент N
104 Коэффициент B
105 Выходной Holding register HR, для плавного управления выходом (регистры от 40 до 43)
Результат выполнения алгоритма n запишется в регистр результата IR100+n = K*x/N+B.
В "линейном алгоритме" пишутся в оба регистра и в IR100+n и в HR что указан в 105 реги-стре.
Пороговое реле:
Рег Значение
100 2 - Пороговое реле
101 Входной регистр источника данных IR(x)
102 Coils. Если не используется, то записать значение больше 8.
103 Пороговое значение
104 Гистерезис
Результат выполнения алгоритма n запишется в регистр результата IR100+n = 0 или 1.
Пороговое реле, инверсное значение:
Рег Значение
100 3 - Пороговое инверсное реле
101 Входной регистр источника данных IR(x)
102 Coils. Если не используется, то записать значение больше 4.
103 Пороговое значение
104 Гистерезис
Результат выполнения алгоритма n запишется в регистр результата IR100+n = 0 или 1.
Триггер:
Рег Значение
100 4
101 Входной регистр источника данных (дискретный вход) DI(x)
102 Coils. Если не используется, то записать значение больше 4.
103 Время дребезга, мс
Результат выполнения алгоритма n запишется в регистр результата IR100+n = 0 или 1.
Состояние выхода = состоянию входа:
Рег Значение
100 5
101 Входной регистр источника данных (дискретный вход) DI(x)
102 Coils. Если не используется, то записать значение больше 4.
103 Инверсия
Результат выполнения алгоритма n запишется в регистр результата IR100+n = 0 или 1. Входной параметр - дискретный вход.
Таймер
Рег Значение
100 6
101 Тип таймера: 0 - Выбранная дата; 1 – Ежемесячно; 2 – Еженедельно; 3 – Ежедневно; 4 - Каждый час; 5 - Каждую минуту; 6 - Интервал
102 104 Время: часы (для таймеров 0...3), минуты (для 0...4), секунды (для 0...6)
105 107 Дата: день (от 1 до 31, для типов 0...1), месяц (от 1 до 12, для типа 0), год (от 0 до 99, для типа 0)
108 Маска дней недели (для таймера типа - Еженедельно). 1 - ПН, 2 - ВТ, 4 -СР, 8 - ЧТ, 16 - ПТ, 32 - СБ, 64 – ВС
109 Выходное реле или выходной Holding регистр. При значении данного параметра в диапазоне 40...44 используется Holding регистр, меньше 8, то - реле. Если не используется, то записать значение больше 45.
110 Значение, записываемое в реле (0 или 1) или выходной Holding регистр (0 ... 65535)
Датчик HIH4010
Рег Значение
100 7
101 Входной регистр (дискретный вход) источника данных IR(x) (24...31)
102 Коэффициент Offset - из документации на датчик, Vout @ 0%RH в мВ
103 Коэффициент Vout_at_75 - из документации на датчик, Vout @ 75%RH в мВ
Датчик LM235
Рег Значение
100 8
101 Входной регистр источника данных IR(x) (24...31)
Плавное изменение
Рег Значение
R0 9
R1 Входной регистр источника данных IR(x), обычно результат от алгоритма типа "Триггер" или "Состояние выхода = состоянию входа"
R2 Значение входного регистра, по которому срабатывает алгоритм
R3 Выходной Holding регистр, для плавного управления выходом (регистры от 40 до 43)
R4 Направление изменения выходного регистра: 0 - увеличение, 1 - уменьшение
R8 Минимальное или максимальное значение выходного регистра (в зависимости от значения регистра 104)
R6 Время изменения на единицу, мс
Кнопка диммирования
Рег Значение
R0 21
R1 Тип регистра: 0-Const, 1-Coils, 2-Discrete Input, 3-Holding Reg, 4-Input Reg
R2 Входной регистр (дискретный вход) источника данных DI(x) (0, 1, 2, 3)
R3 Выходной регистр HR, для плавного управления (регистры 0, 1, 2, 3)
R4 Время изменения яркости на единицу, мс (оптимально 10)
R5 Время удержания кнопки, мс (оптимально 1000)
Логика работы сценария следующая: при кратковременном нечетном нажатии на кнопку (указанную в R1) включится канал (указанный в R2), при кратковременном четном нажатии на кнопку (указанную в R1) выключится канал (указанный в R2). При нечетном удержании кнопки будет плавное увеличение яркости, при четном удержании будет плавное уменьшение яркости. Время удержании кнопки до перехода в режим изменения яркости указывается в R4 в миллисекундах. Оптимальное значение 1 сек – 1000. Время увеличения яркости на единицу (влияет на скорость увеличения яркости) указывается в R3 в миллисекундах. Оптимально 10 мС.
MATH - Арифметические операции R2 = R4 (операция) R7:
регистр параметр
R0 10 - R2 = R4 (операция) R7
R1 Тип регистра: 1-Coils, 3-Holding Reg, 4-Input Reg
R2 Выходной регистр
R3 Тип регистра: 0…5
R4 Входной операнд 1
R5 Функция: 0- «+», 1- «-», 2- «*», 3- «/», 4- «%», 5- «++», 6- «--»
R6 Тип регистра
R7 Входной операнд 2
Логика работы сценария «арифметическая операция» следующая: R2 = R4 (операция) R7; R2=R4 + R7;
Функция может быть:
значение функция
0 «+» сложение
1 «-» вычитание
2 «*» умножение
3 «/» деление
4 «%» остаток от деления
5 «++» прибавление к результату
6 «--» вычитание из результата
Сохранение результата в константу и Discrete Inputs невозможно.
Результат записывается в Input Registers со смещением 100. При записи в R2 значения 23, запишется в регистр IR123.
BITS - Побитовые операции R2 = R4 (операция) R7:
регистр параметр
R0 11 - R2 = R4 (операция) R7
R1 Тип регистра: 1-Coils, 3-Holding Reg, 4-Input Reg
R2 Выходной регистр
R3 Тип регистра: 0…5
R4 Входной операнд 1
R5 Операция: 0- «~», 1- «&», 2- «|», 3- «^», 4- «<<», 5- «>>»
R6 Тип регистра
R7 Входной операнд 2
Логика работы сценария «Побитовые операции» следующая: R2 = ~ R4 или R2 = R4 (операция) R7.
Операция может быть:
значение Операция
0 «~» побитная инверсия только над первым операндом
1 «&» логическая И
2 «|» логическая ИЛИ
3 «^» Побитовое исключающее ИЛИ
4 «<<» побитовый сдвиг влево
5 «>>» побитовый сдвиг вправо
Сохранение результата в «константу» и «Discrete Inputs» невозможно.
MOV - Присвоение R2 = R4:
регистр параметр
R0 12 – R2 = R4
R1 Тип регистра: 1-Coils, 3-Holding Reg, 4-Input Reg, 5-Timer
R2 Выходной регистр
R3 Тип регистра: 0…5
R4 Входной операнд
Логика работы сценария «Присвоение» следующая: R2 = R4. Значение из R4 записывается в R2.
IFG - Логические операции IFG (R2 условие R5):
регистр параметр
R0 13 - IFG (R2 условие R5) переход
R1 Тип регистра: 0…5
R2 Входной операнд 1
R3 Функция: 0- «==», 1- «!=», 2- «>», 3- «<», 4- «>=», 5- «<=», 6- «!», 7- «&&», 8- «||»
R4 Тип регистра: 0…5
R5 Входной операнд 2
R6 Переход (возможные значения 0-127)
Логика работы сценария «Логические операции» следующая:
IFG (R2 условие R5) тогда выполнится переход CALL на адрес указанного сценария, иначе выполнится следующая операция. При переходе запоминается адрес выхода, чтобы после выполнения подпрограммы вернуться командой RETURN. Для выполнения одного из действий дополнительно используйте команду перехода GOTO. Если номер сценария указан больше 127, то будет переход на номер 0.
значение функция
0 «==» если равно
1 «!=» если не равно
2 «>» если больше
3 «<» если меньше
4 «>=» если больше или равно
5 «<=» если меньше или равно
6 «!» логическая операция НЕ
7 «&&»логическая операция И
8 «||»логическая операция ИЛИ
Например:
2: If (IR2 > 30) переход на 5; иначе выполнится следующая операция
3: MOV IR25 = 1
4: GOTO 6
5: IR25 = 0
6: R2 = R4 & R7
IFE - Логические операции IF (R2 условие R5):
регистр параметр
R0 14 - IFE (R2 условие R5) тогда R6=R8 иначе R6=R9
R1 Тип регистра: 0…5
R2 Входной операнд 1
R3 Функция: 0- «==», 1- «!=», 2- «>», 3- «<», 4- «>=», 5- «<=», 6- «!», 7- «&&», 8- «||»
R4 Тип регистра: 0…5
R5 Входной операнд 2
R6 Тип регистра: 0…6
R7 Выходной регистр
R8 Тип регистра: 0…5
R9 Входной операнд если верно
Логика работы сценария «Логические операции» следующая:
IFE (R2 условие R5) тогда R7=R9. Действие выполняется однократно и не будет постоянно присваивать значение при верном условии. Присвоение выполнится снова только когда условие станет неверно и снова верно.
значение функция
0 «==» если равно
1 «!=» если не равно
2 «>» если больше
3 «<» если меньше
4 «>=» если больше или равно
5 «<=» если меньше или равно
6 «!» логическая операция НЕ
7 «&&»логическая операция И
8 «||»логическая операция ИЛИ
GOTO - Переход:
регистр параметр
R0 15 - GOTO
R1 Переход (возможные значения 0-127)
Команда GOTO переход позволяет перепрыгнуть несколько сценариев. Сценарии выполняются последовательно от 0 до 127 и снова повторяются. Команда GOTO может выполняться совместно с условием IF. Если номер сценария указан больше 127, то будет переход на номер 0.
Например:
2: If (IR2 > 30) переход на 5, иначе выполнится следующая операция
3: MATH R7 = R4 * R7
4: GOTO 6
5: MATH R7 = R4 - R7
6: BITS R12 = R4 & R7
CALL – Переход в подпрограмму:
регистр Параметр
R0 16 – CALL
R1 Переход (возможные значения 0-127)
Логика работы сценария «Переход» следующая: CALL номер сценария.
Эта команда работает так же, как и GOTO, но запоминает номер своего сценария. Команда переход позволяет перепрыгнуть несколько сценариев. Может выполняться совместно с условием. Если номер сценария указан больше 127, то будет переход на номер 0.
RETURN – Выход из подпрограммы:
регистр Параметр
R0 17 – RETURN
Логика работы сценария «Переход» следующая: RETURN.
Команда ставится в конце сценария подпрограммы и делает переход на следующий шаг, откуда был сделан вызов CALL. Например:
2: If (IR2 > 30) переход на 100, иначе выполнится следующая операция
3: MATH IR28 = IR38 * IR7
4: MATH IR7 = DI4 - IR7
5: BITS R12 = R4 & R7
6: MOV Coil3=R12
99: GOTO 0; переход в начало алгоритма
100: MOV IR7 = 25
101: MATH IR38 = DI4 * IR7
102: RETURN; возврат из подпрограммы