Страница 1 из 1

запись и чтение панели weintek и ПЛК

СообщениеДобавлено: 19 июн 2015, 11:01
adamst
можно ли в одну и туже ячейку памяти писать и читать из нее, т. е. передавать в панель бит и по необходимости его же менять. Сейчас у меня в программе получается если я передаю из панели значение в ПЛК, то оно каждый цикл перезаписывается из панели, даже если я его меняю в ПЛК. Читаю по 1х, передаю по 0х. Можно ли читать и передавать по 0х скажем, чтобы работать с одной ячейкой?

к примеру в codesys у меня часть кода который считывает и передает в панель информацию
из панели
qMotorOil := MB_SRV_PRG.MbSrvInput.wOutputs[1].0 ; (* 0x 1бит *)
qVentAVO1 := MB_SRV_PRG.MbSrvInput.wOutputs[1].1 ; (* 0x 2бит *)
и в панель
MB_SRV_PRG.MbSrvOutput.wInputs[5].0 := qMotorOil ; (* 1x 65бит 5байт *)
MB_SRV_PRG.MbSrvOutput.wInputs[5].1 := qVentAVO1 ; (* 1x 66бит 5байт *)

Re: запись и чтение панели weintek и ПЛК

СообщениеДобавлено: 19 июн 2015, 12:18
den_po
"передавать в панель бит и по необходимости его же менять" - менять с панели или с контроллера?
У вас панель - слейв? Если так, то решение - изменённое в контроллере значение до чтения из панели предварительно отправлять туда же. Можно использовать возможность битовых кнопок использовать разные адреса для чтения и записи.

Re: запись и чтение панели weintek и ПЛК

СообщениеДобавлено: 19 июн 2015, 13:12
adamst
den_po писал(а):"передавать в панель бит и по необходимости его же менять" - менять с панели или с контроллера?
У вас панель - слейв? Если так, то решение - изменённое в контроллере значение до чтения из панели предварительно отправлять туда же. Можно использовать возможность битовых кнопок использовать разные адреса для чтения и записи.

панель мастер, меняется значение с контроллера, но есть режимы когда с панели нужно менять один и тот же выход.

к примеру так будет работать? из панели адресный регистр:

на чтение в панель из плк
in_dElectrBlockValve_fault MODBUS RTU 0x 1
in_dPowerIn1_fault MODBUS RTU 0x 2
на передачу из панели в плк
out_dElectrBlockValve_fault MODBUS RTU 0x 1
out_dPowerIn1_fault MODBUS RTU 0x 2

по сути один и тот же регистр ссылается на один участок, только переменные с in_ использую для чтения, out_ на передачу

Re: запись и чтение панели weintek и ПЛК

СообщениеДобавлено: 19 июн 2015, 13:15
den_po
У вас что-то конкретное работает не так, как нужно? Панель не пишет в контроллер постоянно, если её специально об этом не попросить.

Re: запись и чтение панели weintek и ПЛК

СообщениеДобавлено: 19 июн 2015, 16:03
adamst
den_po писал(а):У вас что-то конкретное работает не так, как нужно? Панель не пишет в контроллер постоянно, если её специально об этом не попросить.

каждый цикл контролллера передает и забирает информацию от панели, она я так понял всегда шлет информацию

Re: запись и чтение панели weintek и ПЛК

СообщениеДобавлено: 19 июн 2015, 16:41
den_po
Определитесь, пожалуйста, кто кому шлёт.
Если панель мастер, то это она шлёт и принимает данные. Данные она шлёт, только когда её об этом попросят. Экранные объекты в цикле данные читают из контроллера, а пишут только когда пользователь данные вводит. Передавать в цикле панель может из выполняющихся макросов или объектами "передача данных".

Re: запись и чтение панели weintek и ПЛК

СообщениеДобавлено: 19 июн 2015, 19:26
adamst
den_po писал(а):Определитесь, пожалуйста, кто кому шлёт.
Если панель мастер, то это она шлёт и принимает данные. Данные она шлёт, только когда её об этом попросят. Экранные объекты в цикле данные читают из контроллера, а пишут только когда пользователь данные вводит. Передавать в цикле панель может из выполняющихся макросов или объектами "передача данных".

спасибо за разъяснения, сейчас думаю я нашел ошибку, только проверить смогу завтра
Изображение
а нужно наверное так
Изображение

файлы проекта для обмена codesys, а то сколько не говори лучше один раз увидеть
программа на панель 6100i и на плк fastwel 713, функция сирены не работает :(. Она срабатывает, если закоментировать строчки приема от панели данных. Т.к. программа хотя вывод qSiren меняет, но с панели приходит бит и затерает.
http://clip2net.com/s/3jzyZ5B
или кому удобнее может скачать с яндекс диска
https://yadi.sk/d/nQBddjIDhMruJ

Re: запись и чтение панели weintek и ПЛК

СообщениеДобавлено: 20 июн 2015, 13:30
adamst
первый рисунок верный, сходил проверил, второй не подходит для моего варианта

все равно так и не смог разобраться как переворачивать входящий бит, данные поступают по одному регистру 1х №регистра 89, а передаю по другому 0х номер регистра 25
передаю и считываю их каждый цикл ПЛК,
наверное мне нужно в панели каким то образом вызвать както макрос и передать из 1х89 в 0х25 и если пользователь еще нажмет на тумблер инвертировать сигнал, но тогда как это сделать?

Re: запись и чтение панели weintek и ПЛК

СообщениеДобавлено: 22 июн 2015, 15:51
den_po
adamst писал(а):передаю и считываю их каждый цикл ПЛК,

Вы не можете передавать и считывать их каждый цикл ПЛК (если я правильно понимаю, что вы подразумеваете под словом "цикл"), потому что обмен контролируется панелью.

Не надо ничего придумывать, на панели достаточно использовать объект "битовый переключатель". Он будет и отображать состояние бита, полученное из ПЛК, и передавать новое значение только в момент переключения.