Advertisement
Guest User

Untitled

a guest
Feb 18th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SCL 4.30 KB | None | 0 0
  1. ModbusMaster(
  2.     ENABLE                        :=TRUE, (*JESLI DOSTANIEMY ZAPLATE USTAWIC TRUE!!!*)
  3.     bCOM_PORT                    := 2,
  4.     cbCOM_BAUDRATE            := 960,
  5.     cpCOM_PARITY                := 0,
  6.     csCOM_STOPBITS            :=2,
  7.     cbsCOM_BYTESIZE            := 8,
  8.     cfCOM_FLOW_CONTROL    := 4 ,
  9.     TimeOut                        := t#500ms,
  10.     StartFunction                    :=START ,
  11.     ExtQuery                        :=Zapytanie ,
  12.     Response                        :=Odpowiedz ,
  13.     MB_Error                        =>ModbusMasterErr ,
  14.      );
  15.  
  16. TimerOpoznienia(IN:= NOT START, PT:= CzasOpoznienia);
  17.  
  18.  
  19. (*Opoznienie przejscia do kolejnego kroku*)
  20. (*Opoznienie(xInput:= NOT (Start OR Opoznienie.xOutput), dwTon_10tel_s:= CzasOpoznienia, dwToff_10tel_s:= CzasOpoznienia);*)
  21.  
  22. (*IF Opoznienie.xOutput THEN*)
  23. IF TimerOpoznienia.Q THEN
  24.         CASE Stan OF
  25.  
  26.         0:
  27.                     Zapytanie.FunctionCode := 3;
  28.                     Zapytanie.Read_Quantity := 46;
  29.                     Zapytanie.Read_StartAddress := 2;
  30.                     Zapytanie.SlaveAddress := 1;
  31.                     START := TRUE;
  32.                     Stan := 1;
  33.         1:
  34.                     NW1_ModbusErr := ModbusMasterErr;
  35.                     IF NW1_ModbusErr = 0 THEN Centrala2PLC(Odpowiedz := Odpowiedz, obszar := 1, NrCentrali := 1); END_IF
  36.                     Stan := 2;
  37.  
  38.         2:
  39.                     Zapytanie.FunctionCode := 3;
  40.                     Zapytanie.Read_Quantity := 46;
  41.                     Zapytanie.Read_StartAddress := 2;
  42.                     Zapytanie.SlaveAddress := 2;
  43.                     START := TRUE;
  44.                     Stan := 3;
  45.         3:
  46.                     NW2_ModbusErr := ModbusMasterErr;
  47.                     IF NW2_ModbusErr = 0 THEN Centrala2PLC(Odpowiedz := Odpowiedz, obszar := 1, NrCentrali := 2); END_IF
  48.                     Stan := 4;
  49.  
  50. (*******************************************************************************************************************************************************************)
  51.  
  52.         4:
  53.                     Zapytanie.FunctionCode := 3;
  54.                     Zapytanie.Read_Quantity := 52;
  55.                     Zapytanie.Read_StartAddress := 54;
  56.                     Zapytanie.SlaveAddress := 1;
  57.                     START := TRUE;
  58.                     Stan := 5;
  59.         5:
  60.                     NW1_ModbusErr := ModbusMasterErr;
  61.                     IF NW1_ModbusErr = 0 THEN Centrala2PLC(Odpowiedz := Odpowiedz, obszar := 2, NrCentrali := 1); END_IF
  62.                     Stan := 6;
  63.  
  64.         6:
  65.                     Zapytanie.FunctionCode := 3;
  66.                     Zapytanie.Read_Quantity := 52;
  67.                     Zapytanie.Read_StartAddress := 54;
  68.                     Zapytanie.SlaveAddress := 2;
  69.                     START := TRUE;
  70.                     Stan := 7;
  71.         7:
  72.                     NW2_ModbusErr := ModbusMasterErr;
  73.                     IF NW2_ModbusErr = 0 THEN Centrala2PLC(Odpowiedz := Odpowiedz, obszar := 2, NrCentrali := 2); END_IF
  74.                     Stan := 8;
  75.  
  76. (*******************************************************************************************************************************************************************)
  77.  
  78.         8:
  79.                     Zapytanie.FunctionCode := 3;
  80.                     Zapytanie.Read_Quantity := 36;
  81.                     Zapytanie.Read_StartAddress := 148;
  82.                     Zapytanie.SlaveAddress := 1;
  83.                     START := TRUE;
  84.                     Stan := 9;
  85.         9:
  86.                     NW1_ModbusErr := ModbusMasterErr;
  87.                     IF NW1_ModbusErr = 0 THEN Centrala2PLC(Odpowiedz := Odpowiedz, obszar := 3, NrCentrali := 1); END_IF
  88.                     Stan := 10;
  89.  
  90.         10:
  91.                     Zapytanie.FunctionCode := 3;
  92.                     Zapytanie.Read_Quantity := 36;
  93.                     Zapytanie.Read_StartAddress := 148;
  94.                     Zapytanie.SlaveAddress := 2;
  95.                     START := TRUE;
  96.                     Stan := 11;
  97.         11:
  98.                     NW2_ModbusErr := ModbusMasterErr;
  99.                     IF NW2_ModbusErr = 0 THEN Centrala2PLC(Odpowiedz := Odpowiedz, obszar := 3, NrCentrali := 2); END_IF
  100.                     Stan := 12;
  101. (* to jest tylko część przykładu w celu pokazania jak wygląda składnia języka ST *)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement