Что такое флаг в CX-Programmer? - PullRequest
       30

Что такое флаг в CX-Programmer?

0 голосов
/ 14 февраля 2012

Во время чтения документации ПЛК (ПЛК Omron CP1L и CX-Programmer) есть некоторые недостающие объяснения. Например, он определяет " Flag " как "бит, который служит интерфейсом между * Struction" , означает ли это, что флаг является своего рода условным Power Flow

Это становится более запутанным с терминами "Дифференциальный рост / уменьшение" , "Флаг переноса" ? Что такое флаги и что они делают в лестничной логике? Это простая или инструкция для использования или просто концепция, которую мне не нужно программировать на лестнице?

[Изменено]

Где добавить / изменить / удалить флаг в инструкции? Я открываю правку, но там нет флага.

enter image description here

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

Хорошо, это лучший вопрос.

ПЛК похожи на любую программу - данные хранятся в разных типах. Представьте, что флаги взаимозаменяемы с терминами «бит», «логический» и т. Д. Они очень важны.

Если у вас есть CX-Programmer, гораздо лучше получить информацию - Справочник по инструкциям (Справка -> Справочник по инструкциям -> yourPLC). Они показывают временные диаграммы большинства инструкций и то, как работают каждый из параметров и флагов.

Например, базовый таймер (TIM) работает, присваивая ему значение. Если вы используете таймер BCD типа 100 мс и назначаете его SV (заданное значение) значение BCD 300, то вы создали таймер с 30-секундным пределом (300 x 100 мс). Когда таймер включится, он начнет отсчет, а PV (значение процесса) начнется с 300 и начнет обратный отсчет. Когда значение достигает нуля, флаг таймера включается, чтобы указать, что срок его действия истек. Если номер таймера, скажем, T100, то вы можете использовать T100 в качестве контакта в другой цепочке логики - это будет верно, если условия выполнения таймера TRUE и время таймера истекло.

Дифференциалы (UP / DOWN) - это специальные флаги, которые имеют значение true только для одного сканирования ПЛК (то есть: они верны только для одного цикла выполнения), когда их входные условия изменяются с FALSE на TRUE (то есть: с OFF на ON) для UP дифференциалы и TRUE to FALSE (то есть: от ON к OFF) для дифференциалов DOWN. Вы должны использовать дифференциалы в тех случаях, когда вы хотите выполнить действие в момент изменения данного условия.

Флаги можно использовать практически для чего угодно. Вы можете использовать их как общие логические значения в ваших собственных программах, они могут быть частью определенных операций (т. Е. Флаг CY (перенос) используется в арифметических операциях, которые приводят к переносу - другие флаги используются для указания переполнения или div / 0 ошибки и т. д.).

Снова отредактируйте: (чтобы ответить на расширенный вопрос).

Флаг завершения основного таймера - это контакт с его номером. Скажем, у меня есть таймер 100 мс, T100, который включается, когда контакт 10.00 включен:

     10.00                                       ___    
|-----| |---------------------------------------|TIM|
                                                |100|
                                                |   |
                                                |#20|
                                                |___| 

Теперь, после 10.00 включения в течение двух секунд, таймер истечет, и флаг для таймера 100, T100, включится. Если бы у меня была другая ступенька, где

|    T100                                 W15.00
|-----| |-----------------------------------( )

Тогда рабочий бит W15.00 будет включен по истечении таймера и будет оставаться включенным, пока выполняется условие входа таймера (то есть: до тех пор, пока 10.00 остается включенным). Однако флаги работают по-разному для разных вещей. Каждая операция может использовать их по-разному.

Пример из справочника инструкций Omron (Справка -> Справочник инструкций -> [выберите ПЛК]) выглядит следующим образом:

Omron Timer

1 голос
/ 24 февраля 2015

Ну очень хорошее объяснение с примером, и значение флагов можно найти в области памяти, это чисто двоичный код, либо 0, либо 1, так как я читал документацию, расположение памяти рабочего бита изменяется в соответствии с типом таймера, например, TIM / TIMX или TIMH.или TIMHX, оба являются таймерами BCD, но изменяется единица измерения таймера.

...