Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Vijeocitect
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
Ярослав555
Добрый день. Поставлена задача создать скаду на основе сайтекта. из железа имеется ОВЕНовские контроллеры, к ним написаны програмы и вродебы все работает. Со скадой тоже какбы разбираюсь, как работать понял, теги создаю, по модбасу все читается. но есть проблема - в ПЛК есть ряд регистров, которые из плк видны как отдельные биты, их использую для дискретных состояний. я понимаю, чо это все те же регистры модбаса, и прочитать их могу, только скада их читает как единое число. можно както прочитать как отдельный битик? в сайтекте есть тип digital, тип как я понял логический. только вот как его в менюшке тега прикрутить к модбасу, если там только регистр указывается, а бит регистра нет?
manjey73
Посмотрите в скаде варианты логического И , & на полученное значение. Тогда читаете скадой регистр и накладываете битовую маску на нужный вам бит.
Например получили значение 78(десятичное) из регистра, необходимо узнать состояние 3-его бита этого значения.
78 в двоичке это 0111001 (слева младший бит 0), 3-ий бит в 1. Для маски необходимо число 0001000 (8 в десятичном)
78&8, вы получите 1 на выходе, если в бите будет 0, то и на выходе вы получите 0
Дальше делаете с операндом что хотите и привязываете к чему хотите.

Обычно скады такие операции поддерживают.
san
Citect тоже поддерживает.
Если нужно в графике, тогда прямо по месту биты отлавливаются
(ANDом и по маске с 1-кой в нужном месте) <> 0 - значит 1, =0 - значит 0.
С записью где-то также, только паковать 1-ку с ORом по маске в нужном месте, а 0 - с ANDом в нужном месте.
Если нужно еще в тренды записывать - тогда путь в Events.
Хотя, здается мне что Овен должен поддерживать Coils и Input Bits, Citect о таком тоже знает и с ним работает.
manjey73
san биты не всегда поддерживаются, если для модулей, то чтобы записать в отдельный выход модуля для режима Modbus, необходимо писать 1000, так как выходы с ШИМ.
Так что не всегда прокатит Coils или Bits
san
Цитата(manjey73 @ 8.8.2014, 8:03) *
san биты не всегда поддерживаются, если для модулей, то чтобы записать в отдельный выход модуля для режима Modbus, необходимо писать 1000, так как выходы с ШИМ.
Так что не всегда прокатит Coils или Bits

Ну тогда ответ один - пусть топикстартер учит Cicode. Вобще, Citect без Cicode - это не Citect.
Весь функционал доступен только при использовании Cicode.
Так что топикстартеру нужно хорошо подучиться синтаксису Cicode, как создавать пользовательские функции Cicode, события (Event).
Ярослав555
За лог операции спасибо - работает, правда неудобно. Ради вычитывания битов разбираться с cicode как-то не айс. Кроме того - это может быть разовый проект, и больше я шнайдер не увижу. ну ок, подумаю. спасибо за советы.
manjey73
Лучше битовой маской сразу писать в модуль, так будет проще, если ШИМ не нужен.
Так что из всего Cicode достаточно будет разобраться как вынимать биты и как записывать. Вообще все логические и арифметические операции понять и пользовать.
SBER
Вы через что к сайтеку подсоединяетесь?
В свое время успешно соединял Owen через OPC codesys. Правда после 300 переменных у кодесисовского опс начинаются тормоза.
Если цепляете через шнайдеровский опс по 485, то он как twido нормально соединяется. Переменнные можно разделить в сайтеке как MW для слов, M для битовых переменных. Там только смещение на +1 идет ЕМНИП.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.