PDA

Просмотр полной версии : Входные переменные в массив



kuguar
03.12.2008, 22:52
Здравствуйте.
Подскажите, пожалуйста,
Можно ли занести значения «прослушиваемых» входов (с МВА) в массив,
кроме как через процедуру присвоения (типа MVA[1] := %QD9.42.1),
которую необходимо вызывать каждый раз перед тем как необходимо считать значение переменной?

AlexPC1
03.03.2011, 11:25
Ответ на вопрос будет когда нибуть?

Gans
03.03.2011, 21:10
1.сделайте нужную структуру с РЭ на МВА8
2.сделайте переменную этого типа
3.исп. modbus.lib передав туда адрес этой переменной
4.наслаждайтесь
Спасибо Валенок не перестаю удивляться оригинальностью решений, но кажется в этот раз вариант MVA[1] := %QD9.42.1 будет попроще.
P. S. Для kuguar. Вот это - "%QD9.42.1" замените на более удобочитаемое например: "rlT_Atmosf". Делается это в ПЛК-конфигурации двойным щелчком мыши перед "AT %QD9.42.1 ....." и дальше вводим название переменой. Возможно в этом случае вообще отпадёт необходимость "занесения значений «прослушиваемых» входов (с МВА) в массив":).

Bagaj
30.05.2011, 11:38
Кто нибудь скажет, есть ли вообще возможность обращаться к области ввода вывода как к массиву. У меня в сети на RS-485 весит 100 одинаковых устройств. Неужели придется к каждому отдельно обращаться. Это ж караул....

Bagaj
02.06.2011, 13:31
Я прошу прощения, но в этих делах я новичок, поэтому не совсем понятно, как это реализовать в коде. Пишу на ST. Контроллер ПЛК 154. Работает
1. В режиме масрета для RS-485 - 40 устройств по 2 регистра в каждом (Здесь вроде как понятно, по методу описанному товарищем "Валенок").
2. В режиме матрера для MB TCP - 2 устройства по 80 регистров. (Вот здесь непорятно, ну создам я структуру на одно устройство, а к 80 регистрам как обращатся???)
3. В режиме слейва для MB TCP - 300 регистров. (Тоже мыслей нет никаких по поводу обращения к ним как к массиву.)
Пожалуйста подскажите, есть ли какие нибудь простенькие примеры. Или хотя бы где это можно почитать или поподробней опишите последовательность действий.
и слейва для MB TCP.

Николаев Андрей
02.06.2011, 17:00
Судя по всему не очень понятно...
40 устройств на RS485 не повесишь - максимум 32.
Во вторых зачем Вам массивы?
Если речь идет о структурах и одинаковых устройствах - просто реализуйте сами обмен с помощью библиотеки SysLibSocet

Валенок
02.06.2011, 22:53
А что с того что МВА8.
32 штуки в полном наборе тянем, а 33 нет ?
PS
Массив из них организовать не проблема. Так даже намного проще чем по одному.

Валенок
03.06.2011, 08:36
что значит закончится ?
Я работаю с syslibcom. Прекрасно обхожусь без штатного мастера, но ни разу не было задачи больше 12 слейвов. Поэтому и интересуюсь. Связь была и вдруг нету или становится хуже и хуже.

Bagaj
03.06.2011, 11:32
40 устройств на RS485 не повесишь - максимум 32.


У меня не МВА8 а другие модули. Не ОВЕН. У них нагрузочная способность 1/2, то есть до 64-х устройств.
Спасибо товарищу "Валенок" за быстрый ответ. Будем попробовать.

Serge_UA
03.06.2011, 16:15
на 33 должны адреса слейвов закончится теоретически

Ограничение в 32 приемника определено стандартом RS485.
При подключении в сеть более 32 устройств (со стандартным входным сопротивлением приемника 12кОм) стандарт не гарантирует, что мощности передатчика хватит для работы на такую нагрузку.
Виноват закон Ома, адреса здесь не причем. :)

Валенок
03.06.2011, 16:25
Ну вот наконец-то.
Возможно больше, но может не получится.А может и получится.Как пойдет :)

to Bagaj
А что такое нагрузочная способность 1/2 ?

Serge_UA
03.06.2011, 16:51
Ну вот наконец-то.
Возможно больше, но может не получится.А может и получится.Как пойдет :)



Рассматривая только физический уровень сети (т.е. стандарт RS485) можно подключить и больше, если использовать повторители RS485. Между повторителями можно подключить 32 устройства. Повторитель служит буферным усилителем (т.е. согласует нагрузку).

Если же рассматривать сетевой уровень протокола, то ограничением на количество устройств служит размер поля в телеграмме, в котором передается адрес устройства в сети. 5 бит - 32 устройства, 8 бит - 256 устройств и т.д.

К примеру у вражеского :D сименса максимальное количество устройств в сети профибас - 126.



to Bagaj
А что такое нагрузочная способность 1/2 ?
Я так понимаю это значит, что входное сопротивление приемника равно 24кОм

Bagaj
06.06.2011, 09:25
to Bagaj
А что такое нагрузочная способность 1/2 ?

Число устройств в сети на RS-485 ограничивается микросхемой-драйвером.
У микросхем-драйверов RS-485 с нагрузочной способностью 1 максимальное число устройств в сети - 32. Существуют драйвера с нагрузочной способностью 1/2 (64 устройства, например ST485), 1/4 (128 устройств, например MAX487), и даже бывают на 256 устройств. То есть, просуммировав все эти цифры должно быть не более 32.