PLC команды в Heidenhain
                     Для понимания работы PLC перевел на русский язык, список команд Heidenhain который есть у меня
Структура команд
Команда состоит из Оператора и Операнда. Оператор идентифицирует фактическую операцию. Это заявление о том, что произошло с операндом.
Операнд содержит информацию о том, к какому содержимому памяти должна получить доступ операция.В общем случае операнд состоит из описания операнда и адреса операнда.
Если необходимо подключить два операнда, используется накопитель(accumulator).
Операнды
Маркеры (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  | 
 MP4120.0 - 4120.47  | 
- Заданное значение для счетчиков 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 | 
Вроде все. Что не перевел, так как не понял как правильно перевести, если кто знает как правильно черкните на почту .
Комментарии ()