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

Тема: ПЛК110-30-М02 нестандартный проткол к весам ВСП4

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #22
    Пользователь
    Регистрация
    20.05.2021
    Адрес
    г.Челябинск
    Сообщений
    36

    По умолчанию

    Вот окончательный вид рабочей программы .
    PROGRAM PLC_PRG
    VAR
    port:COMSETTINGS:=(Port:=COM1,dwBaudRate:=9600,byS topBits:=0,byParity:=0,dwBufferSize:=28);
    portReady:BOOL;
    buf:ARRAY[0..27]OF BYTE;(*данные из весов через RS232*)
    bufCopy:ARRAY[0..27]OF BYTE;
    buf1:ARRAY[0..7]OF BYTE;(*массив веса*)
    bufzero:ARRAY[0..27]OF BYTE:=28(0);
    i:INT:=0;
    i1:INT:=0;
    i3:INT:=0;
    dIWWORD:=0;
    dIW2WORD:=0;
    iWES: REAL:=0;
    iSTEP:INT;
    WES: REAL;(*чистый вес*)
    iDEC: INT;
    I4: BOOL := FALSE;
    END_VAR

    WHILE dIW<>500000 DO(*выдержка времени*)
    dIW:=dIW+1;
    END_WHILE
    dIW2:=dIW2+1;
    IF NOT portReady THEN(* Сразу открываем и настраиваем порт *)
    portReady:=TRUE;
    SysComOpen(port.Port);
    SysComSetSettings(port.Port,ADR(port));
    SysComRead(port.Port, ADR(buf),28,0);
    ELSE(* Работаем с открытым портом *)
    SysComRead(port.Port, ADR(buf),28, 0);
    END_IF
    bufCopy:=buf;
    WHILE (i<=27)AND(i3=0)DO
    IF bufCopy[i]=119 THEN
    i3:=1;
    FOR i1:=0 TO 7 DO
    buf1[i1]:=bufCopy[i+i1+2];
    END_FOR
    END_IF
    i:=i+1;
    END_WHILE

    FOR i:=0 TO 7 DO
    IF buf1[i]= 46 THEN
    I4:=TRUE;
    iSTEP:=7-i;(*количество знаков после десятичной точки*)
    iDEC:=i;(*положение десятичной точки*)
    END_IF;
    END_FOR;
    IF i4=TRUE THEN
    CASE iDEC-4 OF
    2: buf1[iDEC]:=buf1[iDEC+1];
    1: buf1[iDEC]:=buf1[iDEC+1];
    buf1[iDEC+1]:=buf1[iDEC+2];
    0: buf1[iDEC]:=buf1[iDEC+1];
    buf1[iDEC+1]:=buf1[iDEC+2];
    buf1[iDEC+2]:=buf1[iDEC+3];
    END_CASE;
    FOR i:=0 TO 6 DO
    iWES:=iWES+(buf1[i]-48)*EXPT(10,(6-i));
    END_FOR;
    WES:=iWES/EXPT(10,iSTEP);
    END_IF
    i4:=FALSE;
    iWES:=0;
    i:=0;
    i3:=0;
    buf:=bufzero;
    dIW:=0;
    Сделал еще визуализацию для переменной WES.Проект во вложении.
    Все отлично работает как часы! Всем спасибо!
    Вложения Вложения
    Последний раз редактировалось павелсиражев; 28.09.2021 в 13:14.

Похожие темы

  1. Нестандартный отчет
    от Terminat в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 27.10.2017, 10:23
  2. Нестандартный протокол
    от SVVSVA в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 08.09.2011, 15:18
  3. нестандартный протокол
    от niklud19511 в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 05.05.2011, 15:02
  4. Нестандартный протокол
    от Евгений Владимирович в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 28.02.2010, 23:22
  5. Нестандартный протокол
    от Klik в разделе ПЛК1хх
    Ответов: 36
    Последнее сообщение: 03.03.2008, 13:49

Ваши права

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