Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

Как предусмотреть НО/НЗ для DI в step 7?

PLC, прочие контроллеры, промышленные компьютеры, операторские панели

Автор темы
tangatar
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 18 июн 2012, 21:20
Ф.И.О.: Ачкасов Юрий Владимирович

Как предусмотреть НО/НЗ для DI в step 7?

Сообщение tangatar » 04 фев 2013, 11:07

Добрый день!

Вопрос в следующем: есть контроллер S7-300, панель оператора OP73, ПО разрабатывается на языке SCL. Хочу организовать сбор данных с дискретных датчиков по-человечески, так сказать, то есть сделать сбор данных так, чтобы на панели оператора можно было настраивать для датчиков тип НО или НЗ. Первое что пришло в голову: организовал DB перечислил в нем все DI сигналы, думал инвертировать их со SCADA (WinCC Flexible), ан не тут то было, так как на модуль постоянно приходит 24В с датчика сигнал не инвертируется. Т.е. инвертируется и тут же принимает обратное значение. Может быть можно рганизовать сбор данных при помощи битовой маски и наложить ее с XOR на целевую переменную, но максимальная длинна типов данных в Степ 7 32 бита а датчиков 68(. Писать для них конструкцию с взведением флага типа IF флаг= true THEN инвертируем сигнал долго, хочется придти к универсальному решению так как подобных заказов бывает много.

Подскажите пожалуйста пути решения, кто сталкивался.


Автор темы
tangatar
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 18 июн 2012, 21:20
Ф.И.О.: Ачкасов Юрий Владимирович

Re: Как предусмотреть НО/НЗ для DI в step 7?

Сообщение tangatar » 04 фев 2013, 13:37

можно ли присвоить одному DB с типом UDT значения другого DB с таким же типом данных? У меня не получается...
Что -то вроде DB3:=DB1 XOR DB2.


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2229
Зарегистрирован: 10 ноя 2009, 04:58
Ф.И.О.: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 23 раза
Контактная информация:

Re: Как предусмотреть НО/НЗ для DI в step 7?

Сообщение Михайло » 04 фев 2013, 16:23

tangatar писал(а):Т.е. инвертируется и тут же принимает обратное значение.

Вы не можете писать в одну и ту же область. Нужно брать из одной области памяти, инвертировать и писать в другую область... Вообще, непонятно, что вы хотите сделать... Вы хотите иметь у каждого сигнала инверсный образ?


Автор темы
tangatar
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 18 июн 2012, 21:20
Ф.И.О.: Ачкасов Юрий Владимирович

Re: Как предусмотреть НО/НЗ для DI в step 7?

Сообщение tangatar » 04 фев 2013, 16:46

Я хочу следующее. Т.к. часто приходит заказ на однотипные системы, мне нужно организовать универсальный сбор данных для них. Как правило оборудование ставится однотипное, разница лишь в том что дискретные входные сигналы могут быть как НЗ так и НО. Мне бы хотелось предусмотреть настройку ( НО/НЗ) для каждого датчика в SCADA. ТО есть, как я вижу этот момент: Есть набор сигналов булевого типа соответственно для каждого датчика один бит, если со скады приходит настройка, что контакт нормально закрыт, то в программе плк идет сравнение нашего набора данных с маской, и всем сигналам НЗ типа присваивается не DI, а NOT DI.


Автор темы
tangatar
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 18 июн 2012, 21:20
Ф.И.О.: Ачкасов Юрий Владимирович

Re: Как предусмотреть НО/НЗ для DI в step 7?

Сообщение tangatar » 04 фев 2013, 18:42

Операции с блоками данных тоже не проходят...

FUNCTION GetInputChannel: VOID
VAR_TEMP
I: Inp1;

BEGIN

I:= Dinp.DBD0 XOR NDinp.DBD0;


END_FUNCTION

Блоки Dinp и NDinp тоже имеют тип данных Inp1


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2229
Зарегистрирован: 10 ноя 2009, 04:58
Ф.И.О.: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 23 раза
Контактная информация:

Re: Как предусмотреть НО/НЗ для DI в step 7?

Сообщение Михайло » 04 фев 2013, 20:20

Теперь стало вроде понятно: SCADA должна дать возможность поставить галочку "инвертировать" на каждый сигнал. Я только не понял, чем не нравится функция XORW (или как она там обзывается?). Побитовая XOR в слове. Для 68 сигналов достаточно три раза вызвать эту функцию...


Livsc
здесь недавно
здесь недавно
Сообщения: 22
Зарегистрирован: 14 янв 2009, 09:13
Ф.И.О.: Лившиц Аркадий Соломонович

Re: Как предусмотреть НО/НЗ для DI в step 7?

Сообщение Livsc » 06 фев 2013, 08:22

Создайте битовый массив - тип датчиков:0 - НО,1 - НЗ.Массив считанных дискретных входов суммируйте по модулю 2 с этим массивом. Результат - массив НО.


Автор темы
tangatar
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 18 июн 2012, 21:20
Ф.И.О.: Ачкасов Юрий Владимирович

Re: Как предусмотреть НО/НЗ для DI в step 7?

Сообщение tangatar » 11 фев 2013, 08:09

Спасибо, все получилось. В качестве массива взял сразу DB. Если обращаться к DB например как к DBD0, его можно рассматривать как двойное слово удобно потом из SCADA обращаться) Жаль только что типов длиннее 32 бит нету.


Вернуться в «Средний уровень автоматизации»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей