PDA

Просмотр полной версии : СП310, нумерация регистров элементов панели



Newcomer
22.08.2017, 14:21
Добрый день

Как нумеруются регистры элементов - 0, 1, 2, 3 и т.д. или по номеру младшего байта регистра ?

Евгений Кислов
22.08.2017, 14:27
Добрый день

Как нумеруются регистры элементов - 0, 1, 2, 3 и т.д. или по номеру младшего байта регистра ?

Добрый день. Честно говоря, вопрос не понял.
Если панель - мастер, то в элементах задаются регистры slave-устройств с явной нумерацией - 0, 1, 2 и т.д.

Newcomer
22.08.2017, 14:39
На экране панели установлены 2 кнопки, у одной номер регистра 0, у второй 2. Когда меняется состояние первой кнопки, то посылаемый в ПЛК код меняется с 0 на 1 и наоборот, т.е. все нормально. Когда меняем состояние второй кнопки, то почему-то меняется состояние регистра 0.

Евгений Кислов
22.08.2017, 14:41
На экране панели установлены 2 кнопки, у одной номер регистра 0, у второй 2. Когда меняется состояние первой кнопки, то посылаемый в ПЛК код меняется с 0 на 1 и наоборот, т.е. все нормально. Когда меняем состояние второй кнопки, то почему-то меняется состояние регистра 0.

Скрины настроек панели и ПЛК выложите, пожалуйста.
А лучше - сами проекты.

Newcomer
22.08.2017, 14:48
Вот для ПЛК и панели.

Евгений Кислов
22.08.2017, 14:59
Область памяти 0x - это Coils. Т.е. работая с битами 0x0-0x15, вы работаете с битами нулевого регистра (QW7.1.0). Соответственно, изменение любого из данных битов приводит к изменению значения регистра в целом.

Если хотите (почему-то), чтобы каждый бит панели занимал целый регистр ПЛК - то в панели используйте 4x0.0, 4x1.0, 4x2.0 и т.д.

Newcomer
22.08.2017, 15:06
В ПЛК в конфигураторе нет битовых сетевых элементов

Евгений Кислов
22.08.2017, 15:09
Есть 8bits - если, опять же, вы хотите именно этого.
Собственно, в вашем варианте можно просто извлекать в Codesys отдельные биты из WORD переменной.

Или я до сих пор не понял вашу проблему?

Newcomer
22.08.2017, 15:22
Собственно, в вашем варианте можно просто извлекать в Codesys отдельные биты из WORD переменной.

И к какому элементу панели этот регистр привязать чтобы можно было передать его в сеть ?

Или у всех битовых элементов панели будет один регистр, но разные биты в нем ?

Евгений Кислов
22.08.2017, 15:29
Если я правильно понимаю вашу задачу (я в этом не уверен), вы можете разместить на панели 16 переключателей, привязав к ним биты 0x0-0x15.
В ПЛК вы привязываете к нулевому регистру (у вас это QW7.1.0) переменную (например PanelButtons) и работаете в коде с ее битами:



IF PanelButtons.0 THEN
// что-то там
END_IF


Если вам надо передать это еще куда-то (например, в SCADA), то просто копируете в TCP Slave значение PanelButtons и в скаде опять же побитово его разбираете.

Newcomer
22.08.2017, 15:36
Все понятно. Спасибо.