не могу записать бит в регистр.

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

не могу записать бит в регистр.

Сообщение MaxXx » Чт сен 20, 2012 3:25 pm

Имеется:
- InTouch 10.0;
- I/O сервер DASMBTCP.2;
- ПЛК Twido.

Завожу тег "ValveOpen" тип "I/O Discrete" с адресом "400002:2". Читать его читаю, а записать не могу. (Т.е. делаю ValveOpen = 1; он сбрасывается в ноль, в контроллер не пишется)

Тут же завожу тег "ValveCmd" тип "I/O Integer" с адресом "400002". Записываю во второй бит тега единичку ( ValveCmd.01 = 1; ) ValveOpen становится 1.

Вопрос:
Почему тег "ValveOpen" тип "I/O Discrete" с адресом "400002:2" не записывается?
MaxXx
 
Сообщения: 37
Зарегистрирован: Пн авг 20, 2007 2:06 pm

Re: не могу записать бит в регистр.

Сообщение mp3corp » Чт сен 20, 2012 10:28 pm

1 (0x01) — чтение значений из нескольких регистров флагов (Read Coil Status)
2 (0x02) — чтение значений из нескольких дискретных входов (Read Discrete Inputs)
3 (0x03) — чтение значений из нескольких регистров хранения (Read Holding Registers)
4 (0x04) — чтение значений из нескольких регистров ввода (Read Input Registers)
mp3corp
 
Сообщения: 375
Зарегистрирован: Вт фев 22, 2011 4:47 am

Re: не могу записать бит в регистр.

Сообщение mp3corp » Чт сен 20, 2012 10:42 pm

С модбас работал немного, но судя по всему, вы пытаетесь писать булевое значение в регистр с помощью функции 03, возможно поэтому и не работает.
mp3corp
 
Сообщения: 375
Зарегистрирован: Вт фев 22, 2011 4:47 am

Re: не могу записать бит в регистр.

Сообщение MaxXx » Пт сен 21, 2012 2:24 pm

Я наверное не правильно выразился. Попытаюсь еще раз на примере другого тега.

В ПЛК Twido по модбас адресу 400002 находится регистр команд, где каждый битик определенная команда (например 400002:1 т.е. первый бит регистра 400002 команда закрыть, в 400002:2 - закрыть и т.д.)
В сервере ввода/вывода DASMBTCP.2 во вкладке "Device Items" я завожу:

Name | Item Reference
ValveClose | 400002:1
ValveOpen | 400002:2
........................... и т.д.

И соответственно теги в Интаче:
Name: "ValveClose"
Type: "I/O Discrete"
Item: ValveClose (тут мог бы написать и 400002:1)

Так вот при присвоении этому тегу 1 ( ValveClose = 1; )значение не заносится в регистр команд (400002:1).

НО!!!

Если я завожу тег команд:
Name: "ValveCmd"
Type: "I/O Discrete"
Item: 400002

И присваиваю единичку первому биту тега (ValveCmd.00 = 1) то ValveClose становится равным 1 (то есть он читается, но не пишется)

mp3corp писал(а):С модбас работал немного, но судя по всему, вы пытаетесь писать булевое значение в регистр с помощью функции 03, возможно поэтому и не работает.

Судя по чему Вы думаете, что я пишу в регистр с помощью функции 03?
MaxXx
 
Сообщения: 37
Зарегистрирован: Пн авг 20, 2007 2:06 pm

Re: не могу записать бит в регистр.

Сообщение Генератор зла » Пт сен 21, 2012 5:45 pm

М.б. где то в программе контроллера обнуляется адрес 400002:1.
Также попробуйте поиграть полем Bit Order Format в настройках DASMBTCP? м.б. 1 записывается не в тот бит (по порядку в слове)?
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: не могу записать бит в регистр.

Сообщение Генератор зла » Пт сен 21, 2012 5:49 pm

Does DASMBTCP support writing to a bit within a holding register?
KO ID: Products:IOS/DAS; DASMBTCP
Issue Summary: Does DASMBTCP support writing to a bit within a holding register?
Cause Summary: Except for Premium PLC, DASMBTCP has an added function code 22 which allows writing to a bit within a holding register.
Resolution Summary: Except for Premium PLC, DASMBTCP allows writhing to bits within a holding register.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: не могу записать бит в регистр.

Сообщение Генератор зла » Пт сен 21, 2012 5:51 pm

Проверьте, в Tagname Dictionary, случайно, теги ValveClose, ValveOpen не ReadOnly ?
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: не могу записать бит в регистр.

Сообщение mp3corp » Пт сен 21, 2012 8:15 pm

Нашел интересную запись в описании I/O сервера Modicon Modbus:
"Note:Bits in registers are read-only. The MODBUS protocol has no commands to write individual register bits.
Возможно когда Вы заводите тэг типа int/real, та единичка пишется просто в регист 40001, хотя могу и ошибаться.
Можно попробовать поставить MBENET вместо DASMBTCP, проверить региональные настройки(выставить English).
mp3corp
 
Сообщения: 375
Зарегистрирован: Вт фев 22, 2011 4:47 am


Вернуться в Связь InTouch с ПЛК

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20