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

Тема: ПЛК323 доступ к визуализации ч-з встроенный модем.

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

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

    По умолчанию

    Вот рабочий пример включения модема и выхода в инет на 323
    start_RTRIG(CLK:=enable);
    stop_FTRIG(CLK:=enable);
    test_call_F_TRIG(CLK:=test_call AND registred); test_call_R_TRIG(CLK:=test_call AND registred); in_state(in:=state<>prev_state,pt:=my_time);
    IF in_state.Q THEN
    prev_state:=state;
    END_IF

    IF stop_FTRIG.Q THEN
    in_state(in:=FALSE);
    state:=0;prev_state:=-1;
    END_IF

    IF start_RTRIG.Q THEN
    in_state(in:=FALSE);
    state:=3;prev_state:=-1;

    END_IF

    IF test_call_R_TRIG.Q THEN
    in_state(in:=FALSE);
    state:=6;prev_state:=-1;
    END_IF

    IF test_call_F_TRIG.Q THEN
    in_state(in:=FALSE);
    state:=11;prev_state:=-1;
    END_IF


    CASE state OF
    (*Выключаем все!!!*)
    0: (*OFF 1*)
    stop_complete:=FALSE;
    start_complete:=FALSE;
    pwr:=0;
    pwr_key:=1;
    IF in_state.Q THEN state:=state+1; in_state(in:=FALSE); END_IF
    1: (*OFF 2*)
    stop_complete:=TRUE; (*конечное состояние - нет перехода*)

    (*Включаем все!!!*)
    3: (*ON 1*)
    start_complete:=FALSE;
    pwr:=1;
    pwr_key:=1;
    IF in_state.Q THEN state:=state+1; in_state(in:=FALSE);END_IF
    4:
    pwr_key:=0;
    IF in_state.Q THEN state:=state+1;in_state(in:=FALSE);END_IF
    5:
    pwr_key:=1;
    IF in_state.Q THEN state:=state+1;in_state(in:=FALSE);END_IF
    (*Включено - можно работать с портом*)
    6:
    IF Status=0 THEN
    set1.sPort := Port; // ttyS1

    set1.ulBaudrate := 115200;
    set1.byParity := 0;
    set1.ulTimeout := 0;
    set1.byStopBits := 1;
    set1.ulBufferSize := 0;

    set2.byByteSize := 8;

    set2.bBinary := TRUE;
    set2.bDtrControl := FALSE;
    set2.bRtsControl := TRUE;
    set2.bOutxCtsFlow := FALSE;
    set2.bOutxDsrFlow := FALSE;
    set2.bDsrSensitivity := FALSE;

    handle:=SysCom.SysComOpen2(ADR(set1),ADR(set2),ADR (res));
    IF handle<>16#FFFFFFFF THEN
    //str1:='ATZ$R';
    //SysCom.SysComWrite(handle,ADR(str1),len(str1),0,AD R(res));

    SysCom.SysComRead(handle,ADR(str_in),255,0,ADR(res ));
    state:=7;
    END_IF
    ELSE
    start_failure:=TRUE;
    END_IF
    (*Инициализация!*)
    7:
    IF in_state.Q THEN
    str_out:='ATZ$R';
    SysCom.SysComWrite(handle,ADR(str_out),len(str_out ),0,ADR(res));
    state:=state+1;in_state(in:=FALSE);
    END_IF
    (* Прошла успешно*)
    8:
    IF in_state.Q THEN
    SysCom.SysComRead(handle,ADR(str_in),255,0,ADR(res ));
    IF Find(str_in,'OK')>0 THEN
    start_complete:=TRUE; (*конечное состояние - нет
    перехода*)
    (*проверка прошивки *)
    state:=9;in_state(in:=FALSE);
    ELSE
    (* Не успешно! обратно на 7*)
    state:=7;in_state(in:=FALSE);
    END_IF
    END_IF
    9:
    (* Проверка решистрации в сети*)
    IF in_state.Q THEN
    str_out:='AT+CREG?$R';
    SysCom.SysComWrite(handle,ADR(str_out),len(str_out ),0,ADR(res));
    state:=state+1;in_state(in:=FALSE);
    END_IF
    10:


    IF in_state.Q THEN
    SysCom.SysComRead(handle,ADR(str_in),255,0,ADR(res ));
    IF Find(str_in,'+CREG:')>0 OR registred THEN (*+CREG: 0,1*)
    str_2:=standard.delete(str_in,Find(str_in,'+CREG: ')+8,1);
    registred:=STRING_TO_INT(str_2)=1;
    IF registred THEN

    (* Зарегистрированна *)
    state:=13;
    ELSE
    state:=9;in_state(in:=FALSE);
    END_IF
    ELSE
    state:=9;in_state(in:=FALSE);
    END_IF
    END_IF
    11: ; (*Ничего нет*)
    end_test_call:=FALSE;
    12: (* Звонок*)
    IF in_state.Q THEN
    str_out:=CONCAT('ATD+',number);
    str_out:=CONCAT(str_out,';$R'); SysCom.SysComWrite(handle,ADR(str_out),len(str_out ),0,ADR(res));
    end_test_call:=TRUE;
    SysCom.SysComClose(handle);
    state:=11;
    END_IF
    13:
    SysCom.SysComClose(handle);
    if x=false then

    x:=true;
    state:=14;
    else
    state:=14;
    end_if

    14:
    // str_out:='AT+CGATT=1$R';
    // SysCom.SysComWrite(handle,ADR(str_out),len(str_out ),0,ADR(res));

    //IF y<100 THEN
    SysExecute('pppd call mts.gprs');

    state:=15;

    // y:=y+1;
    //END_IF
    // GPRS_ready:=true;

    15:;
    END_CASE
    Вложения Вложения
    Последний раз редактировалось Малышев Олег; 08.06.2015 в 12:32.
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

Похожие темы

  1. Встроенный в ПЧВ ПЛК
    от СВЗ в разделе Эксплуатация
    Ответов: 16
    Последнее сообщение: 23.08.2016, 11:17
  2. ПЛК323 - про встроенный модем.
    от izwerg в разделе ПЛК3хх
    Ответов: 7
    Последнее сообщение: 26.11.2014, 15:30
  3. Ответов: 3
    Последнее сообщение: 09.07.2014, 15:25
  4. Встроенный ПЛК в ПЧВ и скорость АД
    от mvoltrkff в разделе Помощь Разработчикам
    Ответов: 4
    Последнее сообщение: 28.05.2013, 22:42
  5. Встроенный блок питания на ПЛК110-30
    от Electro2 в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 11.01.2012, 10:01

Ваши права

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