Вопрос об инструкциях PLC

Может вход изменение X1, в то время как последовательность инструкции все еще обрабатывается?

например.

LD X1
AND X2
OUT Y1

LD X1 // Can X1 loaded here differ from the previous one?
AND X3
OUT Y1

Спасибо

5
задан Betamoo 21 June 2010 в 11:24
поделиться

3 ответа

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

0
ответ дан 13 December 2019 в 19:21
поделиться

Многие, но не все ПЛК работают с образом ввода-вывода. Входы считываются и хранятся в регистрах. Во время обработки вы работаете с образом IO. Образ обновляется в конце цикла. Таким образом, входы не могут меняться во время обработки, а только между циклами.

7
ответ дан 13 December 2019 в 19:21
поделиться

В дополнение к ответу Джима Си стоит отметить, что многие (большинство?) ПЛК позволяют использовать специальную инструкцию типа "immediate", которая считывает состояние контакта/реле/входа/etc напрямую (в отличие от чтения из образа IO), когда сканирование процессора достигает конкретной строки. Как правило, при этом не обновляется образ IO, что означает, что все другие обычные чтения этого контакта в течение оставшейся части сканирования процессора будут считывать старое значение в регистре, если только они тоже не относятся к типу "немедленных".

Пример :

//Start of Program
// Here the CPU scan starts with X1 closed, X2 closed in the IO image    

LD X1  //(X1 = closed)
AND X2 //(X2 = closed)
OUT Y1  //(Y1 will be set high/closed)

//  **suddenly X1 opens**
//(using LDI here to denote "immediate")

LDI X1 //(open - reading true status)
AND X2 //(closed)
OUT Y1  //(Y1 will now open)

LD X1 //(reading from image = closed, still)
AND X2 //(closed)
OUT Y1 //(Y1 will close again)

END of Program

Тогда при следующем сканировании процессора изображение обновится новым значением (X1=открыто) и все три команды вернут Y1 открыто.

Немедленные инструкции обычно сопровождаются временным штрафом, конечно, потому что ПЛК должен потратить дополнительное время на поиск текущего значения контакта, а не на чтение из изображения. Тем не менее, они могут быть полезны в зависимости от того, как вы хотите, чтобы работала ваша программа. Однако эти инструкции ДОЛЖНЫ использоваться в явном виде, а обычная операция - это просто чтение из изображения IO, как отметил Джим.

ps: Я использовал здесь "LDI" для обозначения немедленной инструкции, но все ПЛК используют разный синтаксис. Koyos, например, использует STR (store) вместо LD и STRI (store immediate).

3
ответ дан 13 December 2019 в 19:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: