PDA

Просмотр полной версии : помощь в составлении xls modbus map



vendor
03.01.2018, 18:35
Приветствую, форумчане.
Помогите с организацией обмена битов с масками через таблицу.
С целочисленными проблем нет. на скринах нерабочий вариант.

vendor
04.01.2018, 15:16
выставлял разные маски от 0x1 до 0x8000, тип чтения от 1 до 4х, не видит и все(((

Сергей Сисейкин
09.01.2018, 08:16
выставлял разные маски от 0x1 до 0x8000, тип чтения от 1 до 4х, не видит и все(((

попробуйте сделать маску отдельно, после того как Вы делаете xls таблицу и добавляете ее в конфигурацию проекта генерируется io файл. Искать его нужно в той же директории, что и ваш xls, откройте его и по аналогии сдалайте с нужным для Вас адресом, куча примеров в файле mb-owen.io (C:\Program Files (x86)\OWEN\TML\Bin\IO)
<Group Name="Входы">
<Tag Name="DI1" Type="DI" Adr="0x0033" msk="0x0001" Descr="Вход 1"/>
<Tag Name="DI2" Type="DI" Adr="0x0033" msk="0x0002" Descr="Вход 2"/>
<Tag Name="DI3" Type="DI" Adr="0x0033" msk="0x0004" Descr="Вход 3"/>
<Tag Name="DI4" Type="DI" Adr="0x0033" msk="0x0008" Descr="Вход 4"/>
<Tag Name="DI5" Type="DI" Adr="0x0033" msk="0x0010" Descr="Вход 5"/>
<Tag Name="DI6" Type="DI" Adr="0x0033" msk="0x0020" Descr="Вход 6"/>
<Tag Name="DI7" Type="DI" Adr="0x0033" msk="0x0040" Descr="Вход 7"/>
<Tag Name="DI8" Type="DI" Adr="0x0033" msk="0x0080" Descr="Вход 8"/>
<Tag Name="DI9" Type="DI" Adr="0x0033" msk="0x0100" Descr="Вход 9"/>
<Tag Name="DI10" Type="DI" Adr="0x0033" msk="0x0200" Descr="Вход 10"/>
<Tag Name="DI11" Type="DI" Adr="0x0033" msk="0x0400" Descr="Вход 11"/>
<Tag Name="DI12" Type="DI" Adr="0x0033" msk="0x0800" Descr="Вход 12"/>

vendor
09.01.2018, 10:30
Разобрался, спасибо. да уж действительно геморрой еще тот... Получается что изначально программа неправильно генерирует файл io. Потом ручками надо удалять Func="..", тип данных оставить пустым в ексель, а если оставить пустым поле функция, то переменная не добавляется.

vendor
09.01.2018, 13:46
кстати запись бита по маске не работает, перезаписывает весь регистр. и в файле mb-owen.io записи отдельного бита нет. Работает только функция 0х10.

Яшина Татьяна
09.01.2018, 15:27
кстати запись бита по маске не работает, перезаписывает весь регистр. и в файле mb-owen.io записи отдельного бита нет. Работает только функция 0х10.

запись по маске работает, все зависит от типа данных. Попробуйте писать 6 функцией. Но если вы побитово пытаетесь во float записать, то скорее всего ничего не получится

vendor
10.01.2018, 21:57
Не работает с 6 функцией. Писать пытаюсь в биты QB9.42.

Яшина Татьяна
11.01.2018, 15:56
Не работает с 6 функцией. Писать пытаюсь в биты QB9.42.

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

Предполагаю что вам нужно использовать либо 5 функцию,если разные адреса, или 6 если адрес один(и использовать маску).

Если в Скрине с .ио адреса верные, то func=5 , если как вы раньше писали - по маске, то адрес один, маски разные, а функция 6.

Если запутаетесь - возможно проще считать все биты словом, и уже в программе используя функциональные блоки Шифратор-дешифратор разбить его на биты.

vendor
12.01.2018, 10:04
На скрине адреса разные, пытался и с одинаковым и с разными и с 5 функцией и с 6й, ничего не помогло.
Создал новый пустой проект с всего одним адресом 0x00. В итоге так же ничего не работает.
Если у вас получается подобный обмен с посылкой одного бита в контроллер, выложите пожалуйста рабочий пример.