Jump to content
Форум по продукции MOXA

Recommended Posts

Для E2210 есть простая программка.

 

<IF>

(Reg-0 = 0)

<THEN>

(DO-0 = OFF) AND

(DO-1 = OFF)

<ELSE>

(DO-0 = ON) AND

(DO-1 = ON)

 

Почему то эта логика не срабатывает при изменении значения в регистре. Срабатывание происходит только, если нажать кнопку Stop, а затем Run на панели Click&Go. Что мы еще не доделали для этого устройства?

Link to comment

Здравствуйте!

Каким образом Вы изменяете значение в регистре? Какая у Вас прошивка в модуле? Я протестировал следующую программку на прошивке 3.11, все работает замечательно:

 

<IF>

(DI-0 ON)

<THEN>

(Reg-0 = 1)

 

<IF>

(DI-1 ON)

<THEN>

(Reg-0 = 0)

 

<IF>

(Reg-0 = 0)

<THEN>

(DO-0 = OFF) AND

(DO-1 = OFF)

<ELSE>

(DO-0 = ON) AND

(DO-1 = ON)

Link to comment

Спасибо за ответ.

 

Версия прошивки - 3.11

Версия Click&Go - 2.1

 

Значения в регистре менял двумя способами.

1. Непосредственно в программе ioAdmin.

2 Через Modbus OPC сервер.

 

Изменение значений в регистре видят обе программы. Да и устройство E2210 про это знает, но только после Stop, а затем Run. Если в регистре 0 то выходы отключаются, если другое значение, то включаются. Но, если просто менять значения в регистре любым из выше приведенных способов, то с выходами ничего не происходит. Такое впечатление, что устройство спит. Как его разбудить?

 

Предполагается менять значения в регистре от компьютера через Modbus TCP. А дискретные выходы устройства будут управлять светофорами для автомобильных весов.

Link to comment

Испытал вариант, предложенный Timoshuk.

У меня он тоже прекрасно работает.

Что же получается? Если устройство само меняет значение в регистре, то и дискретные выходы управляются. А если значения в регистре меняются из вне, то устройство эти изменения не видит. Хотя в инструкции написано, что одним из назначений внутренних регистров, как я понял, является управление выходами по командам от PC. Вот выдержка из инструкции.

 

Internal Register (Integer) represents a status flag to link the status of the first logic to the second one. It

is used most often with the Timer function, or to combine other input statuses together. The Internal Register

function also allows a PC to control the ioLogik’s local output when the remote output is controlled by a

Click&Go log (e.g., digital output, active message, e-mail, or SNMP Trap).

 

NOTE Internal Registers can be controlled by Modbus/TCP protocol.

 

Это что, глюк в ПО устройства? Как быть? Обращаться к производителям?

Link to comment

Проблема решена!!!

 

Оказывается, я менял значения не в том регистре. В ioAdmin можно изменить значения инициализации регистра, но не его рабочее значение.

Соответственно через OPC, я тоже пытался писать в Modbus регистр 0x0178 (Internal Register 00 Initial Value). Поэтому все срабатывало только после перезапуска программы. Когда же стал писать в регистр 0x0B68 (Internal Register 00 Working Value) все заработало!!! Просто надо было чуть дальше почитать инструкцию.

 

Извините за поднятый шум.

Хотя... Может быть мой печальный опыт поможет кому-то не совершить такие же ошибки.

Link to comment

Спасибо Вам за информацию! На будущее будем обращать особое внимание на адрес регистра.

Хорошего дня! :)

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...