работа с IRZ ATM21.A

Помечено: 

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Автор
    Записи
  • #35121
    ivan3012020
    Участник

    Не могу настроить стабильную работу с GSM модемом IRZ ATM21.A в связке пл63.
    При снятие данных, переменные меняются местами (ниже будет скриншот). Физически подключены датчик1, датчик3 и датчик 5. Остальные датчики не подкачены (должны показывать странные числа это нормально). При опросе устройства происходит как будто бы сдивг пакетов (данные датчика 1 попадаю в графу датчик 2, а из датчика 2 в датчик 3, из датчика 3 в датчик 4).
    Подскажите пожалуйста как настроить систему.

    #35122
    ivan3012020
    Участник

    данные которые были приняты — https://ibb.co/Qrpb4vb
    настройка прибора https://ibb.co/6sJW1W0
    настройка канала https://ibb.co/NCQpWyV
    TransMode — RTU

    #35123
    manjey73
    Участник

    Настройку шаблона покажите.
    Если не ошибаюсь, то в ПЛК 63 нет перестановки байт для float.
    И еще момент, он не поддерживает групповые запросы по адресам конфигурации.
    Хотите групповые запросы, разбирайтесь с областью памяти, где хранятся переменные. Они в документации на программирования должны быть указаны.

    Могу пример шаблона скинуть под свою программу, где-то был.

    #35124
    ivan3012020
    Участник

    Буду очень благодарен если вы скинете свой пример.
    В настройке шаблонов групповых запросов нету. по поводу простановки байтов то у меня стоит 2301. Так хотя бы походе на правду ( датчик 1 это температура)

    #35125
    ivan3012020
    Участник

    https://dropmefiles.com/nWDrb
    файл шаблона

    #35126
    manjey73
    Участник

    Значит вы адресацию не учли правильно с 0 или с 1.
    Для 63-го не надо переставлять для float, насколько помню.

    Не помню, нашел какой-то старый.

    <?xml version="1.0" encoding="utf-8"?>
    <DevTemplate>
      <Settings>
        <ZeroAddr>true</ZeroAddr>
        <DecAddr>true</DecAddr>
        <DefByteOrder2 />
        <DefByteOrder4 />
        <DefByteOrder8 />
      </Settings>
      <ElemGroups>
        <ElemGroup active="true" tableType="HoldingRegisters" address="332" name="Time_Err">
          <Elem name="time_rotation" type="ushort" byteOrder="" />
          <Elem name="errnasosB" type="ushort" byteOrder="" />
          <Elem name="err_datch1" type="ushort" byteOrder="" />
          <Elem name="err_datch2" type="ushort" byteOrder="" />
          <Elem name="errele1" type="ushort" byteOrder="" />
          <Elem name="errele2" type="ushort" byteOrder="" />
          <Elem name="errele3" type="ushort" byteOrder="" />
          <Elem name="errele4" type="ushort" byteOrder="" />
        </ElemGroup>
        <ElemGroup active="true" tableType="HoldingRegisters" address="0" name="OUT">
          <Elem name="DO-0" type="float" byteOrder="" />
          <Elem name="DO_1" type="float" byteOrder="" />
          <Elem name="DO_2" type="float" byteOrder="" />
          <Elem name="DO_3" type="float" byteOrder="" />
          <Elem name="DO_4" type="float" byteOrder="" />
          <Elem name="DO_5" type="float" byteOrder="" />
        </ElemGroup>
        <ElemGroup active="true" tableType="HoldingRegisters" address="24" name="AI_12">
          <Elem name="temp_0" type="float" byteOrder="" />
          <Elem name="temp_1" type="float" byteOrder="" />
        </ElemGroup>
        <ElemGroup active="true" tableType="HoldingRegisters" address="32" name="AI_58">
          <Elem name="" type="float" byteOrder="" />
          <Elem name="" type="float" byteOrder="" />
          <Elem name="" type="float" byteOrder="" />
          <Elem name="" type="float" byteOrder="" />
        </ElemGroup>
        <ElemGroup active="true" tableType="HoldingRegisters" address="82" name="Temp">
          <Elem name="temp_ust" type="float" byteOrder="" />
          <Elem name="temp_delta" type="float" byteOrder="" />
          <Elem name="temp_low" type="float" byteOrder="" />
          <Elem name="temp_sr" type="float" byteOrder="" />
        </ElemGroup>
        <ElemGroup active="true" tableType="HoldingRegisters" address="90" name="Narabotka">
          <Elem name="Day_K1" type="uint" byteOrder="" />
          <Elem name="Hour_K1" type="uint" byteOrder="" />
          <Elem name="Day_K2" type="uint" byteOrder="" />
          <Elem name="Hour_K2" type="uint" byteOrder="" />
          <Elem name="Day_K3" type="uint" byteOrder="" />
          <Elem name="Hour_K3" type="uint" byteOrder="" />
          <Elem name="Day_K4" type="uint" byteOrder="" />
          <Elem name="Hour_K4" type="uint" byteOrder="" />
        </ElemGroup>
        <ElemGroup active="true" tableType="HoldingRegisters" address="288" name="INPUT">
          <Elem name="DI" type="ushort" byteOrder="" />
        </ElemGroup>
      </ElemGroups>
      <Cmds />
    </DevTemplate>
    #35127
    ivan3012020
    Участник

    учел адресацию с 0
    сейчас изучу что вы скинули

    #35128
    manjey73
    Участник

    https://cloud.mail.ru/public/Rm7V/izoGyncST

    Тут картинка с адресацией по групповым запросам.
    Адреса частично будут зависеть от типов переменных.

    #35129
    ivan3012020
    Участник

    то есть что бы сделать групповой запрос нужно писать тег с 4000. Верно я понял?

    #35130
    manjey73
    Участник

    Да. Не помню только в каком из документов это описано. То ли по программированию ПЛК, то ли просто в РЭ на него.
    Там есть область памяти, где хранятся все переменные, для чтения группой регистров надо использовать эту область.
    Часть переменных привязана, пользовательские с каких-то адресов и кажется с учетом выравнивания.

    #35131
    manjey73
    Участник
    <?xml version="1.0" encoding="utf-8"?>
    <DevTemplate>
      <ElemGroups>
        <ElemGroup active="true" tableType="HoldingRegisters" address="4096" name="SystemI">
          <Elem name="DI_All" type="uint" byteOrder="2301" />
          <Elem name="AI_0" type="float" byteOrder="2301" />
          <Elem name="AI_0_time" type="uint" byteOrder="2301" />
          <Elem name="AI_1" type="float" byteOrder="2301" />
          <Elem name="AI_1_time" type="uint" byteOrder="2301" />
          <Elem name="AI_2" type="float" byteOrder="2301" />
          <Elem name="AI_2_time" type="uint" byteOrder="2301" />
          <Elem name="AI_3" type="float" byteOrder="2301" />
          <Elem name="AI_3_time" type="uint" byteOrder="2301" />
          <Elem name="AI_4" type="float" byteOrder="2301" />
          <Elem name="AI_4_time" type="uint" byteOrder="2301" />
          <Elem name="AI_5" type="float" byteOrder="2301" />
          <Elem name="AI_5_time" type="uint" byteOrder="2301" />
          <Elem name="AI_6" type="float" byteOrder="2301" />
          <Elem name="AI_6_time" type="uint" byteOrder="2301" />
          <Elem name="AI_7" type="float" byteOrder="2301" />
          <Elem name="AI_7_time" type="uint" byteOrder="2301" />
        </ElemGroup>
        <ElemGroup active="true" tableType="HoldingRegisters" address="4140" name="SystemQ">
          <Elem name="DO_0" type="float" byteOrder="2301" />
          <Elem name="DO_1" type="float" byteOrder="2301" />
          <Elem name="DO_2" type="float" byteOrder="2301" />
          <Elem name="DO_3" type="float" byteOrder="2301" />
          <Elem name="DO_4" type="float" byteOrder="2301" />
          <Elem name="DO_5" type="float" byteOrder="2301" />
          <Elem name="MR1" type="uint" byteOrder="2301" />
          <Elem name="Подсветка_Контраст" type="ushort" byteOrder="" />
          <Elem name="pusto" type="ushort" byteOrder="" />
          <Elem name="Clock" type="uint" byteOrder="2301" />
        </ElemGroup>
        <ElemGroup active="true" tableType="HoldingRegisters" address="4176" name="User">
          <Elem name="temp_ust" type="float" byteOrder="2301" />
          <Elem name="temp_delta" type="float" byteOrder="2301" />
          <Elem name="temp_low" type="float" byteOrder="2301" />
          <Elem name="set_timer" type="float" byteOrder="2301" />
          <Elem name="time_rotation" type="ushort" byteOrder="" />
          <Elem name="col_cond" type="ushort" byteOrder="" />
          <Elem name="weekend" type="ushort" byteOrder="" />
          <Elem name="rezhim_datchikov" type="ushort" byteOrder="" />
          <Elem name="invert_out" type="ushort" byteOrder="" />
          <Elem name="rezhim_out5" type="ushort" byteOrder="" />
          <Elem name="rezhim_out6" type="ushort" byteOrder="" />
          <Elem name="rezhim_hys" type="ushort" byteOrder="" />
          <Elem name="temp_ust1" type="float" byteOrder="2301" />
          <Elem name="errnasosB" type="ushort" byteOrder="" />
          <Elem name="err_datch1" type="ushort" byteOrder="" />
          <Elem name="err_datch2" type="ushort" byteOrder="" />
          <Elem name="errele1" type="ushort" byteOrder="" />
          <Elem name="errele2" type="ushort" byteOrder="" />
          <Elem name="errele3" type="ushort" byteOrder="" />
          <Elem name="errele4" type="ushort" byteOrder="" />
          <Elem name="pusto" type="ushort" byteOrder="" />
          <Elem name="temp_sr" type="float" byteOrder="2301" />
          <Elem name="Day_K1" type="ushort" byteOrder="" />
          <Elem name="Hour_K1" type="ushort" byteOrder="" />
          <Elem name="Day_K2" type="ushort" byteOrder="" />
          <Elem name="Hour_K2" type="ushort" byteOrder="" />
          <Elem name="Day_K3" type="ushort" byteOrder="" />
          <Elem name="Hour_K3" type="ushort" byteOrder="" />
          <Elem name="Day_K4" type="ushort" byteOrder="" />
          <Elem name="Hour_K4" type="ushort" byteOrder="" />
        </ElemGroup>
      </ElemGroups>
      <Cmds>
        <Cmd tableType="HoldingRegisters" multiple="true" address="82" elemCnt="2" cmdNum="1" name="temp_ust" />
        <Cmd tableType="HoldingRegisters" multiple="true" address="84" elemCnt="2" cmdNum="2" name="temp_delta" />
        <Cmd tableType="HoldingRegisters" multiple="true" address="86" elemCnt="2" cmdNum="3" name="temp_low" />
      </Cmds>
    </DevTemplate>

    И АГА, вот при групповых запросах возможно и надо переставлять байты для float. Но лучше в этом убедиться. Сейчас не помню уже. А доступа нет к ПЛК.

    #35139
    ivan3012020
    Участник

    Все заработало ! Спасибо !
    Сейчас посмотрим как проработает день, надеюсь все будет стабильно

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Для ответа в этой теме необходимо авторизоваться.