Помогите разобраться с контроллером Beckhoff

Стартовая страница Форумы Взаимодействие с устройствами Modbus Помогите разобраться с контроллером Beckhoff

Просмотр 12 сообщений - с 76 по 87 (из 87 всего)
  • Автор
    Сообщения
  • #19748
    manjey73
    Участник

    Кстати проверить отправку команд можно из Администратора.

    Открываете ветку Коммуникатора, находите линию и КП и там есть кнопочка Команда.

    #19749
    manjey73
    Участник

    Для проверки, сделайте большой период опроса из ПЛК, снимите галочку в настройках Параметра линии — Опрос КП после команды ТУ

    и потренеруйтесь

    #19756
    manjey73
    Участник

    SetBit(Val(103), 0, GetBit(Val(103),0) > 0 ? 0 : 1)

    А попробуйте каналу управления с данной формулой указать номер команды из шаблона Modbus и режим Стандартная

    #19757
    sakhalin_Cat
    Участник

    У вас есть канал — битовая маска, представленная Word из ПЛК
    Настройте на этот канал управление, тип Станартная
    В формуле укажите Val(Номер канала слова Word)

    Доброго дня.
    Ок. вытащил я регистры входов\выходов %IW и %QW в скаду по модбасу.
    Скада спокойно читает канал у меня он 105 с этим проблем нет, GetBit настроил всё работает.
    А вот как писать в регистры которые не относятся к данному каналу? Вот у меня есть адрес модбас (Holding Reg 4x) 2049 который привязан в PLC к области входов %IW0(Word)=%IB128+%IB129(Byte)=16Bit
    Просто создать канал-пустышку во «входных каналах» и к нему SetBit привязывать в «каналах управления»?

    • Этот ответ был изменен 4 месяца, 3 недели назад от sakhalin_Cat.
    #19759
    sakhalin_Cat
    Участник

    Всё, разобрался, работает.

    #19764
    sakhalin_Cat
    Участник

    Как сделать команду в скаде в «каналах управления» чтобы при нажатии кнопки она сначала отправляла в «Бит канала» по принципу «SetBit(Val(10900), 0, 1)» единицу «1» а затем туда-же в этот бит отправляла ноль «0» в одной формуле ?
    Может таймер какой есть готовый? Туплю пока, не совсем освоился.

    • Этот ответ был изменен 4 месяца, 3 недели назад от sakhalin_Cat.
    #19766
    sakhalin_Cat
    Участник

    Хм. Скачал и установил я модуль автоуправления.
    Помогите создать первые комманды, так как нифига непонятно.
    Вот есть у меня дорасчетный канал 10302 с формулой «GetBit(Val(103),1)» к нему привязан канал управления 10400 «SetBit(Val(103), 1, GetBit(Val(103),1) > 0 ? 0 : 1)»
    .
    Задача №1 Как на основе модуля автоуправления сделать так чтобы при нажатии кнопки в вебморде которая привязана к «каналу управления» 10302 у меня в этот канал ушла сначала 1 а потом 0 с паузой 0,2 сек между ними.
    .
    Задача №2 Как на основании данного модуля написать «сенсорную кнопку вкл/выкл» чтобы проверялось состояние значения канала 1 или 0, и на основании этого отправлялся бит 0 или 1 соответственно. Параметры те-же дорасчетный канал 10302 с формулой «GetBit(Val(103),1)» к нему привязан канал управления 10400 «SetBit(Val(103), 1, GetBit(Val(103),1) > 0 ? 0 : 1)»
    .
    Нужно просто два этих варианта реализовать, как пример, чтобы понять как с ним работать.

    #19767
    sakhalin_Cat
    Участник

    Разобрался методом перебора.
    Зачетный модуль. Респект автору.
    .
    Всем спасибо.

    #19769
    manjey73
    Участник

    Еще раз прочтите выше, что я писал. Модуль автоуправления нужен в
    1. отправки каких-то данных в ПЛК в автоматическом режиме
    например у меня была релейная плата и мне надо было при нажатии кнопки на мнемосхеме отправить сперва одно значение, потом без моего участия отправить второе значение.
    Так вот второе (автоматическое) действие с передачей в устройство можно выполнить ТОЛЬКО модулем
    2. упростить себе жизнь всяких мигалок на мнемосхеме
    3. для отправки Email, Telegram, SMS в авто режиме

    Так вот п.2 если это не связано с отправкой команд в устройства можно реализовать формулами. Вся БД сканируется от меньшего канала к большему.
    И на похожа по структуре языку LD. Результат вычисления каждой формулы в простом представлении, когда в формуле есть return, это значение канала.
    Далее вы берете новый канал, значение вычисленного предыдущего и делаете новую формулу.
    То есть формулы могут быть простыми но организованы в нескольких каналах (как LD, LAD у ПЛК)
    Так и сложными, занесенными в Справочник Формул.

    #19770
    manjey73
    Участник

    Задача №1 Как на основе модуля автоуправления сделать так чтобы при нажатии кнопки в вебморде которая привязана к «каналу управления» 10302 у меня в этот канал ушла сначала 1 а потом 0 с паузой 0,2 сек между ними.

    И вот эта задача в корне не верна, если тут работа с ПЛК. Сбрасывать данный бит должен ПЛК, выполнив процедуру по выставлению данного бита.

    Такие вещи от безысходности обычно делают, когда нет исходников программы ПЛК или кто-то не предусмотрел такой возможности. Если есть возможность избежать подобного, лучше избежать.

    #19771
    manjey73
    Участник

    Задача №2 Как на основании данного модуля написать «сенсорную кнопку вкл/выкл» чтобы проверялось состояние значения канала 1 или 0, и на основании этого отправлялся бит 0 или 1 соответственно. Параметры те-же дорасчетный канал 10302 с формулой «GetBit(Val(103),1)» к нему привязан канал управления 10400 «SetBit(Val(103), 1, GetBit(Val(103),1) > 0 ? 0 : 1)»

    Так вы уже это реализовали, нет ?

    Просто привяжите к кнопке, рисунку и т.д. этот канал управления 10400 и укажите в Действии «Отправить команду сразу»

    #19772
    sakhalin_Cat
    Участник

    Спасибо. Всё сделал, всё работает. Большую часть хотелок реализовал через автоуправление.

Просмотр 12 сообщений - с 76 по 87 (из 87 всего)
  • Вы должны авторизироваться для ответа в этой теме.