Просмотр полной версии : СП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
Все понятно. Спасибо.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot