Просмотр полной версии : Состояние входа ПЛК150 через MudBas
Изучил примеры GSM, Lectus, ModBus.
Понял как записать-считать переменую по Modbus, через удаленный канал. А вот как передать состояние дискретного или аналогового входа ПЛК по ModBus через GSM, никак не пойму.
Хоть намекните.
Flomaster
10.03.2010, 07:31
так ведь состояние дискретного или аналогового входа - это по большому счету тоже переменная. ее и передавайте.
или я не прав?
только со значениями типа Real будьте внимательны.
Только четвертый день мучаю CoDeSys, никак не вьеду как это прописать.
Есть переменная с адресом по дискретному входу ПЛК.
Есть переменная входа модбас. Как между собой их срастить
Flomaster
10.03.2010, 09:00
Хочу уточнить. Какой у вас ПЛК?
И чем он будет в сети Modbus (master или slave)?
ПЛК150-ИМ с прошивкой 2.10.5
В сети мадбаса он slave. Lectus его опрашивает через GSM-модем.
В обшем задача построить диспетчеризацию на несколько ПЛК. Их опрашивает лектус, ноги лектуса привинчены к скада энтек. На Деконт-182 (GSM-windecont-энтек) работает без вопросов. Хотим перейти на овеновские приборы. Пробовали ПЛК цеплять по проводам, подымали OPC-CoDeSys далее энтек, здесь все работает пучком. А вот передать состояние входов ПЛК по GSM, мозгов нехватает.
Flomaster
10.03.2010, 10:03
Вот небольшой примерчик 2020.
Скажу сразу, что с модемами не работал, но сам принцип должен быть вам понятен. ПЛК является слэйвом, по GSM его будет опрашивать мастер и получать нужные данные.
это действительно работатет!!!
хотя в режиме симуляции не пашет.
а вот в натуре через модем, как здрасте сказать.
благодарю. ну а дальше сам. главное толчок!!!
или пинок. :)
Flomaster
10.03.2010, 16:24
В режиме симуляции, конечно же, не будет работать!
И еще. В принципе все значения дискретных входов можно упаковать в один регистр Modbus, например:
mb_var_1.0:=din_1;
mb_var_1.1:=din_2;
Таким образом в одну переменную вы можете поместить до 16 дискретных сигналов.
Успехов!
Меня не устроил переназначение переменой дискрета типа BOOL, в переменную WORD. Скада видит ее как аналог, что не есть хорошо. Поэтому в мадбас добавил подэлемент 8 bits, там 8 переменных типа BOOL в общем то-что надо. Можно привязать все шесть дискретных входов ПЛК. Завтра буду мучать аналоги. Всем удачи. И мне тоже:)
Flomaster
10.03.2010, 17:46
Наверное использование 8 bit в вашем случае будет наиболее удобно.
Я своей целью видел задать вам направление, куда двигаться, и не претендовал на 100% верное решение :) Так что теперь вам и карты в руки:)
По поводу аналогов - можно попробовать переменную Float в Modbus.
Если не получится, то как вариант, можно умножать аналоговое значение на 10 или на 100, передавать в СКАДу как WORD, а там уж делить на 10 или на 100 соответственно. Пробуйте, дерзайте!
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot