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

Тема: опрос по owen communication

  1. #1

    По умолчанию опрос по owen communication

    добрый вечер, подскажите пожалуйста, если при опросе адреса переменных должны динамически меняться с панели( в примере пока статично 512 и 514) , организация опроса возможна только таким способом как описана ниже. Для каждой переменной свой блок?

    CASE istatecom1 OF
    0:
    fbCom1 (
    xenable:=TRUE,
    udiComPort:=1,
    udibaudrate:=udibaudrate1,
    udibytesize:=udibytesize1,
    eparity:= parity1,
    estopbit:=stopbit1
    )
    ;
    IF fbcom1.xDone THEN istatecom1:=1;
    END_IF
    1:
    fbpr1(
    xExecute:=fbcom1.xActive,
    tTimeout:=T#200MS,
    usiRetry:=10,
    hCom:=fbcom1.hCom,
    xisasciimode:=xisasciimode1,
    usislaveid:=16,
    efunccode:=ocl.MB_FC.READ_HOLDING_REGISTERS,
    uidataaddr:=512,
    uidatacount:=1,
    pdata:=ADR(type_station1),
    szsize:=SIZEOF(type_station1)
    );
    IF fbpr1.xDone OR fbpr1.xError THEN fbpr1(xExecute:=FALSE);
    istatecom1:=2;
    2:

    fbpr1(
    xExecute:=fbcom1.xActive,
    tTimeout:=T#200MS,
    usiRetry:=10,
    hCom:=fbcom1.hCom,
    xisasciimode:=xisasciimode1,
    usislaveid:=16,
    efunccode:=ocl.MB_FC.READ_HOLDING_REGISTERS,
    uidataaddr:=514,
    uidatacount:=2,
    pdata:=ADR(arr_DDin1),
    szsize:=SIZEOF(arr_DDin1)
    );
    IF fbpr1.xDone OR fbpr1.xError THEN fbpr1(xExecute:=FALSE);
    ddin1_pump_w2r.awmodbusReal:=arr_ddin1;
    ddin1_pump:=ddin1_pump_w2r.rv;
    istatecom1:=3;
    END_IF

  2. #2

  3. #3

    По умолчанию

    Добрый вечер, подскажите каким способом можно обнулять значения переменных, если не удалось считать переменные(обрыв связи)

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Цитата Сообщение от Dmitrijb Посмотреть сообщение
    Добрый вечер, подскажите каким способом можно обнулять значения переменных, если не удалось считать переменные(обрыв связи)
    Ориентируйтесь на выход xError, если он TRUE - выполняйте очистку буфера (например, через Mem.MemFill).

  5. #5

    По умолчанию

    Выдает исключение что необходима библиотека caa memory 3.5.12, не могу ее найти

  6. #6
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Цитата Сообщение от Dmitrijb Посмотреть сообщение
    Выдает исключение что необходима библиотека caa memory 3.5.12, не могу ее найти
    Она входит в дистрибутив CODESYS.
    Если она выдает исключение - возможно, вы некорректно вызываете функцию.
    Выложите ваш код.

  7. #7

    По умолчанию

    IF stcom1=1 THEN istatecom1:=2;
    ELSE istatecom1:=13;
    mem.MemFill(array1[0],22,0);
    END_IF

    соответственно array1 - array[0..22] of word

  8. #8

  9. #9

    По умолчанию

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

  10. #10

Похожие темы

  1. Ответов: 23
    Последнее сообщение: 30.10.2022, 22:02
  2. Ответов: 16
    Последнее сообщение: 23.03.2020, 11:07
  3. ПЛК63 + ТРМ202 опрос по протоколу OWEN
    от trollik3 в разделе ПЛК63/73
    Ответов: 0
    Последнее сообщение: 03.04.2019, 17:34
  4. Опрос ТРМ138 по RS-485 ( протокол OWEN )
    от a_sergeevich в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 15.02.2013, 22:27
  5. Опрос
    от kucherik в разделе Трёп (Курилка)
    Ответов: 11
    Последнее сообщение: 07.11.2012, 08:34

Ваши права

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