PLC команды в Heidenhain

Автор
Опубликовано
30/10/2024
PLC команды в Heidenhain

Для понимания работы PLC перевел на русский язык, список команд Heidenhain который есть у меня

Структура команд

Команда состоит из Оператора и Операнда. Оператор идентифицирует фактическую операцию. Это заявление о том, что произошло с операндом.

Операнд содержит информацию о том, к какому содержимому памяти должна получить доступ операция.В общем случае операнд состоит из описания операнда и адреса операнда.

Если необходимо подключить два операнда, используется накопитель(accumulator).

ОперандыPLC команды в Heidenhain

Маркеры (Markers) (0...9999 with iTNC 530)

M0 ... M999 - свободный, энергонезависимый(nonvolatile) (iTNC 530: можно определить область)
M1000 ... M3999 - свободный, энергозависимый(volatile)
M1900 ... M1989 - декодированная M-команда (если M4571=1)
M4000 ... M5999 - передача данных NC ↔ PLC
M6000 ... M9999 - свободный, энергозависимый(volatile)

Входа (Inputs)

I0 ... I31 - Логические устройства(Logic unit)
I64 ... I127 - 1. PL(Извлечение данных из стека данных)
I128 ... I152 - Логические устройства(Logic unit) / X46
I160 ... I175 - HR 410 / HR 332 / HRA 110 (наблюдать за параметрами MP7640, MP7645.0)
I192 ... I255 - 2. PL(Извлечение данных из стека данных)
I256 ... I319 - 3. PL(Извлечение данных из стека данных)
I320 ... I383 - 4. PL(Извлечение данных из стека данных)

Выхода (Outputs)

O0 ... O30 - Логические устройства(Logic unit)
O0 ... O7 - Логические устройства(Logic unit) / X46
O32 ... O62 - 1. PL(Извлечение данных из стека данных)
O64 ... O94 - 2. PL(Извлечение данных из стека данных)
O96 ... O111 - HR 410 / HR 332 / HRA 110 (наблюдать за параметрами MP7640, MP7645.0)
O128 ... O158 - 3. PL(Извлечение данных из стека данных)
O160 ... O190 - 4. PL(Извлечение данных из стека данных)

Счетчик (Counter)

C0 ... C31

C48 ... C79

C96 ... C127

C0 ... C47

C48 ... C95

C96 ... C143

- Counter start
- Counter run
- Counter enable

MP4120.0 - 4120.31
[cycles]

MP4120.0 - 4120.47
[cycles] (MP4020 Bit11 = 0)[sec] (MP4020 Bit11 = 1)

- Заданное значение для счетчиков PLC

 

Таймер (Timer)

TNC 426/430 iTNC 530 Описание

T0 ... T47

T48 ... T95

T96 ... T303

T0 ... T47

T48 ... T95

T96 ... T999

- Timer start
- Timer run
- Timer run (вызов с модулем 9006)

 

iTNC 530: С помощью ключевого слова NUMBERMP4111 = xx в OEM.SYS дополнительные машинные параметры MP4111.x (индекс x >= 96) создаются в файле параметров машины, чтобы можно было ввести время для таймера T96 и т.д.
При использовании модуля 9006 со значением параметра передачи -1 используется параметры MP4110.x/4111.x.

Byte (0...9999, 8-bit)

B0 ... B127 - свободный, энергонезависимый(nonvolatile) (iTNC 530: можно определить область)
B128 ... B2047 - передача данных NC ↔ PLC
B2048 ... B9999 - свободный, энергозависимый(volatile)

Word (0...9998, 16-bit)

Wxxxx
см. Byte, адрес операнда (xxxx) /, кратный 2

Double word (0...9996 ,32-bit)

Dxxxx
см. Byte, адрес операнда (xxxx) /, кратный  4

Constant

K-2147483647 ... +2147483647
K$80000001 ... K$7FFFFFFF

Индексный регистр (Indexregister)

Mn[X]   Operanden-Nummer = n + X
In[X]  Operanden-Nummer = n + X
On[X]   Operanden-Nummer = n + X
Cn[X Operanden-Nummer = n + X
Tn[X] Operanden-Nummer = n + X
Bn[X] Operanden-Nummer = n + X
Wn[X] Operanden-Nummer = n + 2*X
Dn[X] Operanden-Nummer = n + 4*X
Sn[X]  String-Nummer = n + X
S#Dn[X] Dialogtext-Nummer = n + X
S#En[X] Fehlertext-Nummer = n + X
Sn^X  Teilstring-Nummer = n + X

 

Операции (Operations)


Загрузка и сохранение команд (Load and Store Commands)

L Загрузка(Load)
LN Нет Загрузки(Load Not)
L- Загрузить два дополнения(Load Two's Complement)
LB Загрузка Байта(Load Byte)
LW Загрузка Слова(Load Word)
LD Загрузка двойного Слова(Load Double Word)
LX Скопируйте содержимое индексного регистра в накопитель Слов(Copy contents of the index register into the word accu
= Присвоить (Assignment)
=N Не Присвоить (Assignment not)
=-  Присвоить два дополнения(Assignment two's complement)
=X Скопировать содержимое слова accu в индексный регистр
B= Присвоить Байт(Assignment Byte)
W= Присвоить Слово(Assignment Word)
D= Присвоить Двойное Слово(Assignment Double Word)

 

Установка команд (Set Commands)

S Set
R Reset
SN Set not
RN Reset not

 

Логические команды (Logic Commands)

A And
AN And Not
O Or
ON Or Not
XO Select Or
XON Select Or Not

 

Арифметические Команды (Arithmetic Commands)

+ Add
- Subtract
х Multiply
/ Divide
MOD Remainder

 

Сравнения (Comparisons)

== Equal to
< Less than
> Greater than
<= Less than or equal to
>= Greater than or equal to
<> Not equal to


Скобки и Логические команды (Brackets and Logic Commands)

A[ And [ ]
AN[ And Not [ ]
O[ Or[ ]
ON[ Or Not [ ]
XO[ Exclusive Or [ ]
XON[ Exclusive Or Not [ ]

 

Скобки и Арифметические Команды (Brackets and Arithmetic Commands)

+[ Add [ ]
-[ Subtract [ ]
x[ Multiply [ ]
/[ Divide [ ]
MOD[ Remainder [ ]

 

Скобки и Сравнения (Brackets and Comparisons)

==[ Equal to [ ]
<[ Less than [ ]
>[ Greater than [ ]
<=[ Less than or equal to [ ]
>=[ Greater than or equal to [ ]
<>[ Not equal to [ ]
] Close brackets


Команды перемещения (Move Commands)

<< Ход влево(Move left)
>> Ход вправо(Move right)

 

Команды работы с Битами (Bit Commands)

BS Установить Бит(Set Bit)
BC Сбросить Бит(Reset Bit)
BT Test Bit
BSX

Установить бит в соответствии с содержимым индексного регистра

(Set Bit according to the contents of the index register)

BCX

Бит сброса в соответствии с содержимым индексного регистра

(Reset Bit according to the contents of the index register)

BTX

Тестовый бит в соответствии с содержимым индексного регистра

(Test Bit according to the contents of the index register)

 


Команды увиличения (Increment Commands)

INC Increment operand by 1
INCX Increment index by 1
INCW Increment word accu by 1

 

Команды уменьшения(Decrement Commands)

DEC Decrement operand by1
DECX Decrement index by 1
DECW Decrement word accu by 1

 

Операции со Стеком(Stack Operations)

PS

Загрузить данные в стек данных

(Load data onto the data stack)

PL

Извлечь данные из стека данных

(Fetch data from the data stack)

PSL

Загрузить логический блок в стек данных

(Load logic accu onto data stack)

PSW

Загрузить word accu в стек данных

(Load word accu onto data stack)

PLL

Извлечь логику accu из стека данных

(Fetch logic accu from data stack)

PLW

Извлечь слово accu из стека данных

(Fetch word accu from data stack)

PSX

Поместить содержимое индексного регистра в стек

(Place contents of index register onto the stack)

PLX

Загружает двойное слово из стека в индексный регистр

(Load double word from stack into the index register)


Команды перехода (Jump Commands)

JP

Безусловный переход

(Unconditional jump)

JPT

Переход если логическая accu = 1

(Jump if logic accu = 1)

JPF  

Переход если логическая accu = 0

(Jump if logic accu = 0)
CM

Вызов модуля

(Call module)

CMT

Вызов модуля если логическое значение accu = 1

(Call module if logic accu = 1)

CMF

Вызов модуля если логическое значение accu =0

(Call module if logic accu = 0)

EM

Конец модуля - конец программы

(End of module - end of program)

EMT

Конец модуля - конец программы, если логическое значение accu = 1

(End of module - end of program if logic accu = 1)

EMF

Конец модуля - конец программы, если логическое значение accu=0

(End of module - end of program if logic accu = 0)

LBL

Метка перехода

(Jump label)


Case Operations

CASE 

Вызов индексированного модуля

(Indexed module call)

ENDC 

Завершить вызов индексированного модуля

(End indexed module call)


Условное Выполнение Программы (Conditional Program Execution)

IFT 

Выполнить следующую последовательность программ, если логическое значение accu = 1

(Execute following program sequence if logic accu = 1)

IFF 

Выполнить следующую последовательность программ, если логическое значение accu = 0

(Execute following program sequence if logic accu = 0)

ELSE 

Выполнить альтернативную последовательность программ

(Execute alternative program sequence)

ENDI 

Конец последовательности программ

(End of program sequence)

 

Цикл программы (Program Loop)

REPEAT 

Повторить следующую последовательность программ

(Repeat the following program sequence)

UNTILT 

до логического accu = 1

(until logic accu = 1)

UNTILF 

до логического accu = 0

(until logic accu = 0)

WHILET 

Выполнить следующую последовательность программ, если логическое значение accu = 1

(Execute the following program sequence if logic accu = 1)

WHILEF 

Выполните следующую последовательность программ, если логическое значение accu = 0

(Execute the following program sequence if logic accu = 0)

ENDW

Конец последовательности программ, возврат к началу

(End of program sequence, return to beginning)


Выполнение строки (String Execution)

L(STRING) 

Загрузить строку

(Load string accu)

+(STRING)

Добавить строку

(Add a string)

=(STRING) 

Хранить строку

(Store a string)

OVWR

Перезаписать строку

(Overwrite a string)

== 

Равно

(Equal to)

Меньше, чем

(Less than)

Больше, чем

(Greater than)

<=

Меньше или равно

(Less than or equal to)

>=

Больше или равно

(Greater than or equal to)

<>

Не равны

(Not equal to)



Многозадачность (Multitasking)

SUBM  Call a Submit module
RPLY  Status interrogation of a Submit module
CAN  Abort a Submit module
SPAWN  Start a Spawn process


Include PLC Program

USES  PLC-File include
GLOBAL Entry point for other PLC-Files
EXTERN  Exit point in other PLC-Files


PLC Constant Field

KFst[X] Value from Constant field (name=st) into index register
KFIELD Begin Constant field (lists of constants)
ENDK End Constant field

 

Вроде все. Что не перевел, так как не понял как правильно перевести, если кто знает как правильно черкните на почту .


Комментарии ()

  1. PLC команды в Heidenhain Никита 23 декабря 2021, 19:27 # 0
    Бесценная информация. Спасибо