Сообщение создано: 22. 03. 2014 [09:37]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"roman" wrote:
Значит это проблема Comedi драйвера, поскольку в модуле DAQ.Comedi запрос идёт строго по номеру подустройства.
Зато номер канала был сквозной.
Исправил!
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 02. 04. 2014 [01:08]
|
Aleksei
Aleksei Lavrenov
Создатель темы
Зарегистрирован(а) с: 04.02.2014
Сообщения: 6
|
Плата заработала со всеми 32-мя входами и 32-мя выходами.
У меня осталась другая не большая проблема связанная с платой входов/выходов и передачей состояния дискретных выходов по Modbus. При перезагрузке контроллера, состояние дискретных выходов читается по Modbus и выводится в столбце "значение" таблицы как "1", хотя в реальности они выключены. Причем в единицу установлены именно Modbus регистры (или биты), т.к. при обработке в алгоритмах непосредственно выходов платы, они соответствую реальному состоянию. Пробовал в транспортном протоколе конфигурировать связь как логический тип (С1w - например) и как целый (R1w-например). Ничего не менялось, кроме как при логическом типе на начальном этапе в столбце "значение" таблицы выводится <EVAL>. При изменении состояния выхода по Modbus или в атрибутах платы (установить и убрать галочку на соответствующим выходе) все начинает выводится и читаться нормально по данному выходу. Где искать причину?
|
Сообщение создано: 02. 04. 2014 [11:33]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"Aleksei" wrote:
Плата заработала со всеми 32-мя входами и 32-мя выходами.
OK
"Aleksei" wrote:
При изменении состояния выхода по Modbus или в атрибутах платы (установить и убрать галочку на соответствующим выходе) все начинает выводится и читаться нормально по данному выходу. Где искать причину?
Не знаю. У меня таких проблем нет и в исходнике этому причин не видно, особенно про восстановление при записи. Вообще это похоже для выходов нормально, поскольку Comedi назад их читать не умеет, а значит там лежит то что записано и если Вы туда ничего не писали то там лежит по умолчанию false или EVAL. Однако Protocol.ModBus это значение назад читает по ссылке в любом случае, проверил только что. Хотя если там EVAL, то как раз 1 по ModBus он и вернёт.
Т.е. берите исходник, ставьте точки контроля и отслеживайте или воспроизводите на ДемоБД, но похоже это не проблема.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 02. 04. 2014 [11:54]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"roman" wrote:
Вообще это похоже для выходов нормально, поскольку Comedi назад их читать не умеет, а значит там лежит то что записано и если Вы туда ничего не писали то там лежит по умолчанию false или EVAL.
Возможно и может, а просто я не пытаюсь их читать.
Добавил обратное чтение дискретных выходов с помощью comedi_dio_read()!
Learn, learn and learn better than work, work and work.
|