Использование переменных типа BYTE и WORD в Zelio | ПЛК и АСУТП

В среде программирования для логического реле Zelio, в программе ZelioSoft 2, нельзя задавать пользовательские переменные типа byte, word, int. Можно применять только битовые переменные в виде триггеров в FBD и катушек (М) в LD-программах.

И такое положение вещей вполне по фен-шую, все-таки Zelio это логическое реле, а не ПЛК.

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

Выход есть. Можно собрать на FBD-блоках ячейки памяти размером в byte или word. Можно сделать даже переменную типа int64, только особо использовать ее не получится.

Для этого понадобятся FBD-блоки «word to bit», «триггеры», «bit to word», «или».

Например, переменная типа BYTE (он же unsigned char), в ZelioSoft 2 будет выглядеть так:

Zelio-byte

На вход B00(«word to bit») поступает число типа Word, на выходе из B00 это число преобразуется в 16 бит, 8 из которых поступают на вход «Set» триггеров B01…B08. Если на входе триггера будет 1(true), триггер сработает и на его выходе будет 1(true) даже если сигнал на «Set» позднее снова станет=0.

Триггеры здесь выполняют роль битов, потому 8 триггеров=1 Байт.

Выходы триггеров подключены на входы B09(«bit to word»), который снова преобразует отдельные биты в целое число типа Word.

FBD-блок B10(«или») здесь нужен для обнуления всех триггеров нашего Байта. При подаче на него значения=1,  эта единица поступает на вход «Reset» всех триггеров и сбрасывает выхода триггеров в 0.

Что бы записать число в такую конструкцию, нужно сначала обнулить триггеры, а потом подать значение на блок «word to bit».

Для примера создадим программу с использованием самодельной переменной типа BYTE:

Счетчик считает импульсы на i1 Zelio (например, детали на конвейере). При достижении значения 256 счетчик обнуляется. По нажатию на кнопку «1» на лицевой панели Zelio, текущее значение счетчика запоминается в памяти. По нажатию на кнопку «2», сохраненное значение в памяти обнуляется. Текущие значения счетчика и сохраненного в памяти выводятся на дисплей Zelio.

Zeli-counter-byte

Можно этот «Байт» преобразовать в макрос и тогда вообще будет полная иллюзия того, что в программе используется пользовательская байтовая переменная:

zelio-byte-macros

Программа в формате ZelioSoft 2 v.4.4

Вот так можно сделать Байт. Правда, на одну байтовую переменную ушло 11 блоков FBD, на WORD уйдет 19 блоков. А максимум в программе может быть 200 блоков. Особо не разгуляешься с такими самодельными переменными в Zelio.

Добавить комментарий

Ваш e-mail не будет опубликован.

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:
Confirm that you are not a bot - select a man with raised hand:

Подпишитесь на нашу рассылку


Copyright © 2016. Перцух Алексей

Индекс цитирования