PDA

Просмотр полной версии : Состояние входа ПЛК150 через MudBas



zx123
10.03.2010, 06:36
Изучил примеры GSM, Lectus, ModBus.
Понял как записать-считать переменую по Modbus, через удаленный канал. А вот как передать состояние дискретного или аналогового входа ПЛК по ModBus через GSM, никак не пойму.
Хоть намекните.

Flomaster
10.03.2010, 07:31
так ведь состояние дискретного или аналогового входа - это по большому счету тоже переменная. ее и передавайте.
или я не прав?

только со значениями типа Real будьте внимательны.

zx123
10.03.2010, 07:51
Только четвертый день мучаю CoDeSys, никак не вьеду как это прописать.
Есть переменная с адресом по дискретному входу ПЛК.
Есть переменная входа модбас. Как между собой их срастить

Flomaster
10.03.2010, 09:00
Хочу уточнить. Какой у вас ПЛК?
И чем он будет в сети Modbus (master или slave)?

zx123
10.03.2010, 09:24
ПЛК150-ИМ с прошивкой 2.10.5
В сети мадбаса он slave. Lectus его опрашивает через GSM-модем.
В обшем задача построить диспетчеризацию на несколько ПЛК. Их опрашивает лектус, ноги лектуса привинчены к скада энтек. На Деконт-182 (GSM-windecont-энтек) работает без вопросов. Хотим перейти на овеновские приборы. Пробовали ПЛК цеплять по проводам, подымали OPC-CoDeSys далее энтек, здесь все работает пучком. А вот передать состояние входов ПЛК по GSM, мозгов нехватает.

Flomaster
10.03.2010, 10:03
Вот небольшой примерчик 2020.
Скажу сразу, что с модемами не работал, но сам принцип должен быть вам понятен. ПЛК является слэйвом, по GSM его будет опрашивать мастер и получать нужные данные.

zx123
10.03.2010, 15:33
это действительно работатет!!!
хотя в режиме симуляции не пашет.
а вот в натуре через модем, как здрасте сказать.
благодарю. ну а дальше сам. главное толчок!!!
или пинок. :)

Flomaster
10.03.2010, 16:24
В режиме симуляции, конечно же, не будет работать!
И еще. В принципе все значения дискретных входов можно упаковать в один регистр Modbus, например:

mb_var_1.0:=din_1;
mb_var_1.1:=din_2;

Таким образом в одну переменную вы можете поместить до 16 дискретных сигналов.

Успехов!

zx123
10.03.2010, 17:31
Меня не устроил переназначение переменой дискрета типа BOOL, в переменную WORD. Скада видит ее как аналог, что не есть хорошо. Поэтому в мадбас добавил подэлемент 8 bits, там 8 переменных типа BOOL в общем то-что надо. Можно привязать все шесть дискретных входов ПЛК. Завтра буду мучать аналоги. Всем удачи. И мне тоже:)

Flomaster
10.03.2010, 17:46
Наверное использование 8 bit в вашем случае будет наиболее удобно.
Я своей целью видел задать вам направление, куда двигаться, и не претендовал на 100% верное решение :) Так что теперь вам и карты в руки:)
По поводу аналогов - можно попробовать переменную Float в Modbus.
Если не получится, то как вариант, можно умножать аналоговое значение на 10 или на 100, передавать в СКАДу как WORD, а там уж делить на 10 или на 100 соответственно. Пробуйте, дерзайте!