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

Тема: Связь между ПЛК-100 и счетчиков US800

  1. #1

    По умолчанию Связь между ПЛК-100 и счетчиков US800

    Доброго времени суток!
    Хочу рассказать о том, как пришлось мне решать задачу по подключению к ПЛК-100 счетчика US800
    Начал я с того, что скачал инструкцию с сайта, изучил и начал писать программу для связи контроллера с счетчиком.
    К моему сожалению ничего не вышло, плк абсолютно не хотела связываться, в режиме диагностики счетчика это отображается, тогда я решил написать письмо разработчикам, которые уверили, что я все делаю правильно и еще раз выслали мне эту же инструкцию. После нескольких попыток, я скачал программу с сайта Flowmeters и через переходник RS-485-USB подключил, запустил программу, она заработала. Тогда, при помощи программы сканирования последовательного порта проверил , что приходит на порт. И к моему удивлению я увидел, что на прибор отсылаются абсолютно другие команды. Я скопировал их, разобрал, и понял, что работаю они по протоколу совместимые с ADAM-4017, ICPDAS I-7017. инструкция тоже лежит на сайте изготовителя. И опять же они указали ее не до конца, для корректной работы она должна иметь вид #092BE$0D$0A, где после формирования слова обязательно ставится команда $0D$0A. #092BE- сама команда, она без труда рассчитывается на шестнадцатиричном калькуляторе и таблице с примером в инструкции. Да, и качественное физическое соединение тоже имеет большой фактор, я не мог получить ответ, хотя счетчик якобы принимал/отправлял команды

  2. #2

    По умолчанию

    Вопросов нет, просто я описал кратко как справился с задачей считывания данных с US-800.

  3. #3

    По умолчанию

    Образец программы для получения мгновенного расхода и счетчика накопленного объема по каналу №1 адрес прибора 9, протестировал на ПЛК-100, ПЛК-110, работает стабильно
    dlina:=LEN(COMANDA);
    IF RS485ISOK THEN
    IF WAITFORANSWER THEN
    PT:=GetByte (0);
    STR:=RBDATA_TO_STRING(PT);
    RS485DATA:=CONCAT(RS485DATA,STR);
    I:=I+1;
    IF I > 14 THEN
    WAITFORANSWER:=FALSE;
    I:=0;
    END_IF;
    ELSE
    IF dlina>0 THEN
    SetByte(0,comanda , Dlina);
    WAITFORANSWER:=TRUE;
    END_IF;
    END_IF;
    ELSE
    a:=LockDevice(0);
    IF a=1 THEN
    RS485ISOK:=TRUE;
    END_IF;
    END_IF;
    X1:=FIND(RS485DATA, '$R');
    x2:=MID(rs485DATA,8, X1-8);
    x3:=MID(X2, 5,2);
    IF LEN(X3)>0 THEN
    X4:= STRING_TO_REAL(X3);

    END_IF;
    IF LEN(RS485DATA)>78 THEN
    RS485DATA:='';
    WAITFORANSWER:=FALSE;
    END_IF;

    IF ZAPROSVOL= TRUE THEN
    CASE STAT OF
    0:
    COMANDA:='#092BE$0D$0A';
    IF COMANDA= '#092BE$0D$0A' AND X4<> 0 THEN
    VOLUME1:=X4*100;
    STAT:= 1;
    ELSE
    STAT:=0;
    END_IF;
    1:
    COMANDA:='#093BF$0D$0A';
    IF COMANDA='#093BF$0D$0A' AND X4<> 0 THEN
    VOLUME2:=X4/1000;
    ELSE
    STAT:=1;
    END_IF
    END_CASE;
    VOLUME:= VOLUME1+VOLUME2; (*Счетчик накопленного объема*)
    X4:=0;
    END_IF;

    IF ZAPROSQ= TRUE THEN
    COMANDA:='#090BC$0D$0A';
    IF COMANDA= '#090BC$0D$0A' THEN
    Q:=X4; (*Мгновенный расход*)
    END_IF;
    X4:=0;
    END_IF;

Похожие темы

  1. Связь между удаленными ПЛК и ПК
    от Hemann в разделе Сетевые технологии
    Ответов: 12
    Последнее сообщение: 06.03.2021, 14:34
  2. Связь между ПЧВ, ПЛК110-30 и СП300
    от xTeAmParkerx в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 10.12.2019, 16:57
  3. Связь между ПЛК по RS 232
    от Вова13 в разделе ПЛК1хх
    Ответов: 0
    Последнее сообщение: 02.07.2019, 09:15
  4. Связь ПЛК между собой
    от bratan в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 13.06.2018, 11:04

Ваши права

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