Добрый день
Как нумеруются регистры элементов - 0, 1, 2, 3 и т.д. или по номеру младшего байта регистра ?
Вид для печати
Добрый день
Как нумеруются регистры элементов - 0, 1, 2, 3 и т.д. или по номеру младшего байта регистра ?
На экране панели установлены 2 кнопки, у одной номер регистра 0, у второй 2. Когда меняется состояние первой кнопки, то посылаемый в ПЛК код меняется с 0 на 1 и наоборот, т.е. все нормально. Когда меняем состояние второй кнопки, то почему-то меняется состояние регистра 0.
Вот для ПЛК и панели.
Область памяти 0x - это Coils. Т.е. работая с битами 0x0-0x15, вы работаете с битами нулевого регистра (QW7.1.0). Соответственно, изменение любого из данных битов приводит к изменению значения регистра в целом.
Если хотите (почему-то), чтобы каждый бит панели занимал целый регистр ПЛК - то в панели используйте 4x0.0, 4x1.0, 4x2.0 и т.д.
В ПЛК в конфигураторе нет битовых сетевых элементов
Есть 8bits - если, опять же, вы хотите именно этого.
Собственно, в вашем варианте можно просто извлекать в Codesys отдельные биты из WORD переменной.
Или я до сих пор не понял вашу проблему?
Если я правильно понимаю вашу задачу (я в этом не уверен), вы можете разместить на панели 16 переключателей, привязав к ним биты 0x0-0x15.
В ПЛК вы привязываете к нулевому регистру (у вас это QW7.1.0) переменную (например PanelButtons) и работаете в коде с ее битами:
Если вам надо передать это еще куда-то (например, в SCADA), то просто копируете в TCP Slave значение PanelButtons и в скаде опять же побитово его разбираете.Код:IF PanelButtons.0 THEN
// что-то там
END_IF