Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 14 из 14

Тема: СПК110 + ПЛК160

  1. #11
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Я на недавнем объекте связывал ПЛК110 с двумя СПК110, которые используются чисто как операторский интерфейс.

    Обе панели подключаются каждая на свой порт контроллера: одна — на RS-232, другая — на RS-485-2. В конфигураторе контроллера создаётся ветка Modbus (slave), в которую набиваются нужные регистры (они будут нумероваться с нуля) и добавляются оба интерфейса. Панели настраиваются на опрос этих регистров. Обе панели совершенно равнозначны, на них записана одна и та же программа. Схема масштабируется в обе стороны — так же легко можно подключить и одну панель, и десять (было бы столько портов у контроллера) с минимальным копипастом. Задержек (лагов) нет.

    Первые четыре модбас-регистра отводятся на передачу команд от панелей контроллеру — эти регистры записываются панелями только когда оператор вызывает команду. Остальные 39 регистров считываются панелями с периодом 33 мс одним скопом. На стороне контроллера эти регистры формируются очень просто:
    Код:
    SAFlags.2 := PLC_PRG.RegenEnabled;
    SAUnitStatesLo.0 := heater;
    SAUnitStatesLo.1 := ik29;
    SAUnitStatesLo.2 := ik1;
    SAUnitStatesLo.3 := ik2;
    SAUnitStatesLo.4 := ik3;
    ...
    где SAUnitStatesLo, например, это имя регистра в конфигураторе контроллера (см. скриншот ниже). Аналогичным образом эти WORD'ы потом разбиваются по битам на панелях:
    Код:
    (* 2 byte SAUnitStatesLo *)
    reg := 1;
    heater := mbusRaw[reg].0;
    kpz[29] := mbusRaw[reg].1;
    kpz[1] := mbusRaw[reg].2;
    kpz[2] := mbusRaw[reg].3;
    kpz[3] := mbusRaw[reg].4;
    kpz[4] := mbusRaw[reg].5;
    где kpz — заранее объявленный массив, mbusRaw — заранее объявленный массив с привязкой к каналу чтения регистров. Изначально я пробовал сделать разделение регистров на панелях конфигуратором третьего кодесиса, но выяснилось, что менять эту конфигурацию потом очень трудно, да и опрос равномерный организовать не получается. Куда проще оказалось сделать чтение всех регистров разом в массив и разбивать их потом вручную.

    Команды передаются через четыре регистра: код команды, аргумент А, аргумент Б, контрольная сумма (не используется). Например, когда оператор открывает клапан №1, панель однократно записывает код = 4, аргумент А = 1. Контроллер в очередном цикле натыкается на код 4, открывает клапан 1 и выставляет код 0, чтобы команда больше не выполнялась. Для передачи сразу нескольких команд (конфигурирование и пуск автоматического режима, например) в панелях предусмотрен конвейер на 51 команду (хм, нафига так много?).

    spk110plc110.png

  2. #12
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,246

    По умолчанию

    как долго планируете ждать от меня примера? я в командировке и пока не доберусь до дома больших примеров не сделаю
    http://www.owen.ru/forum/showthread.php?t=13585 здесь присмотритесь к 8 примеру
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #13
    Пользователь
    Регистрация
    24.12.2012
    Адрес
    Нижняя Куэнга
    Сообщений
    85

    По умолчанию

    Спасибо за примеры.
    Да проблема не в том как отправить из ПЛК, а как конкретно получить в СПК

  4. #14

    По умолчанию

    Цитата Сообщение от Uniqum Посмотреть сообщение
    Спасибо! Похоже ваша инструкция как раз по моему вопросу. Жду не дождусь когда придут железяки, буду пробовать.
    Еще вопрос. Судя по PrintScreen у вас одновременно установлены codesys и V2.. и V3.. они не конфликтуют? Нет-ли каких-либо нюансов при установке? Можно-ли попробовать запустить оба проекта в режиме симуляции?

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. СПК110
    от grr в разделе СПК1хх
    Ответов: 28
    Последнее сообщение: 19.11.2015, 11:35
  2. Retain в СПК110
    от жекон в разделе СПК1хх
    Ответов: 28
    Последнее сообщение: 04.04.2015, 06:13
  3. Питание СПК110
    от @ND в разделе СПК1хх
    Ответов: 2
    Последнее сообщение: 06.03.2015, 09:47
  4. СПК110 и OPC-сервер
    от Андрей007 в разделе СПК1хх
    Ответов: 17
    Последнее сообщение: 08.01.2015, 22:12
  5. СПК110 + 32ДН
    от МаксТТ в разделе СПК1хх
    Ответов: 4
    Последнее сообщение: 12.08.2014, 18:45

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •