Показано с 1 по 6 из 6

Тема: ТРМ232М + ТелемеханикаЛайт

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    В программе "Контроллеры" Телемеханики Лайт вы можете самостоятельно создать пользовательскую функцию "Побитовое считывание" (через элемент "Скрипт"), основываясь на простой логике: проверка наличия "единички" в нужном вам бите - через побитовое умножение ( побитовое логическое И). По сути сравниваете ваше статусное слово со степенями двойки.
    Данная логика реализована для считывания состояния дискретных выходов ТРМ232, пример можете посмотреть в проекте ( Программа Контроллеры: Контроллер 3 - Задачи пользователя - Считывание состояния дискр_выходов). На вход подается как раз то самое статусное слово, на выходах уже - результат обработки ( Сигналы аварий насосных установок). Вы можете менять скрипт под ваши задачи, а так же использовать его и в других проектах (просто копировать-вставить и привязать ваши переменные на входы\выходы).

  2. #2

    По умолчанию

    Собственно как это выглядит в программе и как до этого добраться: В дереве слева выбираете задачу Считывание состояния дискр_выходов. В правой области откроется поле с элементами программы. Выбираете показанный на рисунке скрипт. При выборе скрипта выше появится вкладка "ФБ Скрипт", пройдя по которой вы получите доступ к настройкам скрипта рис1.jpg.

    Вкладка "ФБ Скрипт" выглядит следующим образом: рис2.jpg . Здесь вы видите входы/выходы Функционального блока (ФБ), их тип и есть ли к ним подключение. Вы можете редактировать( изменять-добавлять-удалять) входы выходы в зависимости от ваших задач. Нажав на кнопку "Редактировать скрипт" ниже таблицы вы попадете в редактор скриптов, где и сможете изменить код. В спойлере можете посмотреть код на Pascal и модифицировать его под свои задачи.

    Скрипт на Pascal:
    PHP код:
      Var  status integer;
      Var 
    bit1bit2bit3bit4:  integer;
        Var  
    alarmP1alarmP2,alarmP3,alarmP4 Bool;
       
    {---------- 
    main program -----------}
    begin
      ReadInteger
    ('Status'status); { считывание входа Status и запись во внутреннюю переменную скрипта status

    ReadBool
    ('AlarmP1'alarmP1);{ считывание выхода AlarmP1 и запись во внутреннюю переменную скрипта alarmP1
     bit1 
    := status and 2; { в переменную bit1 записывается результат побитового умножения статусного слова и 2 проверка первого бита
     
    if bit1 >= 2 then alarmP1:=true процедура сравнения 
     
    else   alarmP1:=false;
    WriteBool('AlarmP1',alarmP1); { передача значения на выход AlarmP1

    ReadBool
    ('AlarmP2'alarmP2);
     
    bit2 := status and 4;
     if 
    bit2 >= 4 then alarmP2:=true
     
    else   alarmP2:=false;
    WriteBool('AlarmP2',alarmP2);

    ReadBool('AlarmP3'alarmP3);
     
    bit3 := status and 8;
     if 
    bit3 >= 8 then alarmP3:=true
     
    else   alarmP3:=false;
    WriteBool('AlarmP3',alarmP3);

    ReadBool('AlarmP4'alarmP4);
     
    bit4 := status and 16;
     if 
    bit4 >= 16 then alarmP4:=true
     
    else   alarmP4:=false;
    WriteBool('AlarmP4',alarmP4);

    end

Похожие темы

  1. Подключение двух контуров к ТРМ232М-01
    от Kirigan89 в разделе Эксплуатация
    Ответов: 22
    Последнее сообщение: 30.06.2017, 12:26

Метки этой темы

Ваши права

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