51 lines
1.4 KiB
Markdown
51 lines
1.4 KiB
Markdown
|
|
||
|
![[Pasted image 20230925115512.png]]
|
||
|
![[Pasted image 20230925115534.png]]
|
||
|
|
||
|
This gateways from #Malisko Reads and write from Henkel PLC to the Q1s PLCs
|
||
|
|
||
|
This communication is made using:
|
||
|
|
||
|
![[Pasted image 20230925114635.png]]
|
||
|
|
||
|
This area of E and A
|
||
|
|
||
|
Then on the FC 7 / 26 "FC COM Data - QE1 from/to Henkel L23 / L24" the array is read and converted to an struct that can be used more easily in the DB ComHenkel_D
|
||
|
|
||
|
|
||
|
```
|
||
|
FOR #i := 0 TO 49 DO
|
||
|
#atFromHenkel[#i] := "FromHenkel".di[#i];
|
||
|
CASE #i OF
|
||
|
0, 10, 20, 35..40, 44..49:
|
||
|
#diAppo.%B3 := #atFromHenkel[#i].%B2;
|
||
|
#diAppo.%B2 := #atFromHenkel[#i].%B3;
|
||
|
#diAppo.%B1 := #atFromHenkel[#i].%B0;
|
||
|
#diAppo.%B0 := #atFromHenkel[#i].%B1;
|
||
|
#atFromHenkel[#i] := #diAppo;
|
||
|
ELSE
|
||
|
#diAppo.%W0 := #atFromHenkel[#i].%W1;
|
||
|
#diAppo.%W1 := #atFromHenkel[#i].%W0;
|
||
|
#atFromHenkel[#i] := #diAppo;
|
||
|
END_CASE;
|
||
|
END_FOR;
|
||
|
```
|
||
|
swaps bytes and words.
|
||
|
|
||
|
|
||
|
![[Pasted image 20230925114933.png]]
|
||
|
|
||
|
|
||
|
For transforming the data the same memory is overlaid in this way:
|
||
|
|
||
|
![[Pasted image 20230925115046.png]]
|
||
|
|
||
|
So then the for can iterate the data as an array to swap some bits and then the structured data is copied on the DB
|
||
|
|
||
|
Last info of the structure used to communicate with #Malisko
|
||
|
![[L24_L23 Empty Bottle Conveyor Communication.xlsx]]
|
||
|
|
||
|
Steps for the changeover:
|
||
|
![[Changeover process map v1.xlsx]]
|
||
|
|