Просмотр полной версии : Конфигурирование МВ110-220.32ДН с ПЛК110-60
Mikalaib
24.11.2015, 14:13
Я правильно делаю Конфигурирование МВ110-220.32ДН с ПЛК110-60 ?
1.К постоянным модулям конфигурации добавляю Модуль Modbus (Master), чтобы контроллер работал в режиме Мастера сети, т.е. опрашивал и контролировал ModBus-
устройства, работающие в сети в подчиненном режиме (slave) – например, модуль ввода.
2. В модуле ModBus Master добавЛЯЮ подмодуль «Universal ModBus Device», где указываю параметры SLAVE устройства МВ110-220.32ДН .
3. К подмодулю «Universal Modbus Device» подключаю каналы, задающие входные параметры (параметры, значение которых Мастер запрашивает у Slave-устройств).
В документации на МВ110-220.32ДН сказано, что для опроса всех входов надо прочитать 2 регистра по 16 бит. Поэтому я подключаю 2 канала Register input module,
где для каждого задаю адрес регистра и команду чтения.
Вопросы дополнительные.
1. Есть ли другой вариант задания каналов в этом случае?
1. Как в глобальных переменных описать побитовую адресацию входов по этим каналам?
С наилучшими пожеланиями, Николай.
Когда Register input module добавляете, там будет написано AT %___. Слева от AT щёлкните — появится поле ввода имени переменной. Задайте какое-нибудь имя, например, registerA. Теперь это имя доступно глобально. Поразрядный доступ как всегда через точку — registerA.0
Mikalaib
24.11.2015, 14:52
Когда Register input module добавляете, там будет написано AT %___. Слева от AT щёлкните — появится поле ввода имени переменной. Задайте какое-нибудь имя, например, registerA. Теперь это имя доступно глобально. Поразрядный доступ как всегда через точку — registerA.0
Спасибо за помощь. Но нельзя ли именовать отдельно каждый бит как в канале 8 Discrete inputs ?
Увы, нельзя.
Однако, можно:rolleyes:
Я правильно делаю Конфигурирование МВ110-220.32ДН с ПЛК110-60 ?
1.К постоянным модулям конфигурации добавляю Модуль Modbus (Master), чтобы контроллер работал в режиме Мастера сети, т.е. опрашивал и контролировал ModBus-
устройства, работающие в сети в подчиненном режиме (slave) – например, модуль ввода.
2. В модуле ModBus Master добавЛЯЮ подмодуль «Universal ModBus Device», где указываю параметры SLAVE устройства МВ110-220.32ДН .
3. К подмодулю «Universal Modbus Device» подключаю каналы, задающие входные параметры (параметры, значение которых Мастер запрашивает у Slave-устройств).
В документации на МВ110-220.32ДН сказано, что для опроса всех входов надо прочитать 2 регистра по 16 бит. Поэтому я подключаю 2 канала Register input module,
где для каждого задаю адрес регистра и команду чтения.
Вопросы дополнительные.
1. Есть ли другой вариант задания каналов в этом случае?
1. Как в глобальных переменных описать побитовую адресацию входов по этим каналам?
С наилучшими пожеланиями, Николай.
1. Да
2. Да
С п.3 есть другой вариант, за одно и ответ на "Как в глобальных переменных описать побитовую адресацию входов по этим каналам?".
Ищем на диске С папку "C:\CoDeSys\Targets\PLC110.60_M\IOModules" или "C:\CoDeSys\Targets\PLC110.60_L\IOModules" в зависимости от вида лицензии на ПЛК (L или M).
Блокнотом открываем файл "hardware.cfg" в нем через поиск ищем "[Module.ID2005]"
В этой группе добавляем строку
createbitchannels=true
21032
Сохранить файл.
В Содесис обновить конфигурацию ПЛК (Дополнение, Стандартная конфигурация) или создать новый проект с ПЛК110-60(L или M).
Теперь в «Universal ModBus Device» вставить не 2 Register input module, а 32bit input module.
21033
Адрес регистра 99 из руководства.
Теперь можно присвоить имена отдельным разрядам прямо в конфигурации
21034
Например IN1, IN2, IN3,... и тд.
Эти имена будут глобальными, их дополнительно нигде больше не нужно объявлять(описывать).
ЗЫ. Тот же фокус можно сделать, например для Register input module
21035
А так же прочих input/output модулей.
После этого можно обращаться по имени именованной в конфигурации переменной Word, а так же по имени каждого бита в этой переменной.:rolleyes:
И забыть про всякие PACKи и UNPACKи.
Mikalaib
24.11.2015, 15:24
Спасибо petera. Все получилось.
С одной стороны, клево. С другой стороны, как я понимаю, получается уникальный таргет и фактически привязанная к компу программа. Хорошо, если не так. Но если так, я бы избегал подобных методов. "Хак" это называется. Без необходимости хаками не надо заниматься. Респект в любом случае.
С одной стороны, клево. С другой стороны, как я понимаю, получается уникальный таргет и фактически привязанная к компу программа. Хорошо, если не так. Но если так, я бы избегал подобных методов. "Хак" это называется. Без необходимости хаками не надо заниматься. Респект в любом случае.
Да, это костыль такой.
Но с другой стороны есть некая возможность создавать какие-то шаблоны http://www.owen.ru/forum/showthread.php?t=21976&p=178890&viewfull=1#post178890
Я полагал, что с помощью таких шаблонов можно конфигурацию дополнить (может через меню Дополнение, добавить конфигурационный файл?) модулями с "не стандартным" представление модулей. И иметь в конфигурации оба вида.
Но ответа, о том как создавать такие шаблоны, так и не получил http://www.owen.ru/forum/showthread.php?t=21976&p=184912&viewfull=1#post184912 :(
nikolaich
07.03.2016, 20:22
Работает костыль в реальном проекте?
Владимир Ситников
07.03.2016, 22:57
модулями с "не стандартным" представление модулей. И иметь в конфигурации оба вида.
Если присмотреться, то есть ID2016 -- 32bit output module State.
Как вариант, можно у всех "state" модулей добавить createbitchannels=true.
Когда нужны отдельные биты -- выбираем "32bit output module State". Не нужны -- выбираем "32bit output module".
Производитель уже подумал, и заблаговременно сделал по 2 разновидности :)
Не хотим править target'ы -- выбираем IDE61131 (https://github.com/vlsi/ide61131) (см http://www.owen.ru/forum/showthread.php?t=23013)
Вот пример "отдельных битов" без хождения по target файлам: http://recordit.co/23jp25ziAh
В конкретном случае был простой target 3.09 для ПЛК110-32М, но и для -60 такое работать будет.
Картинка для привлечения внимания: 23045
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot