Hello All-
I have been trying to understand the exchange between AHMI and an Omron PLC.
I am using the 'y' beta version (Thanks Archie) but do not yet fully understand the packet structure and perhaps someone out there could help me in learning this.
Below is an abbreviated log file between a PC and an Omron unit runninf AHMI FINS serial communication:
Unit#- HDR - Resp - ICF - RSV - GCT - DNA – DA1 – DA2 - SNA – SA1 – SA2 - SID - Command Code, Text FCS - Terminator
@ X X F A X 8 0 0 0 0 2 X X X X X X 0 0 0 0 0 0 X X X X , xxx-xxx X X * CR
(How is this packet broken down? Where is SA2 and SID? Where is a FC command?)
SEND TNS=1, 64 48 48 70 65 48 56 48 48 48 48 50 48 48 48 48 48 48 48 48 48 48 ? ? ? ? 70 67 48 49 48 49 48 49 66 48 48 48 48 48 48 48 48 48 48 49 48 65 42 13
@ 0 0 F A 0 8 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 F C 0 1 0 1 0 1 B 0 0 0 0 0 0 0 0 0 0 1 0 A * CR
RCVD TNS=1, 64 48 48 70 65 48 48 67 48 48 48 48 50 48 48 48 48 70 67 48 48 48 48 48 48 48 49 48 49 48 49 48 48 48 48 48 48 48 50 51 48 42 13
SEND TNS=2, 64 48 48 70 65 48 56 48 48 48 48 50 48 48 48 48 48 48 48 48 48 48 ? ? ? ? 70 67 48 50 48 49 48 49 66 48 48 48 48 48 48 48 48 48 48 49 48 57 42 13
@ 0 0 F A 0 8 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 F C 0 2 0 1 0 1 B 0 0 0 0 0 0 0 0 0 0 1 0 9 * CR
RCVD TNS=2, 64 48 48 70 65 48 48 67 48 48 48 48 50 48 48 48 48 70 67 48 48 48 48 48 48 48 50 48 49 48 49 48 48 48 48 48 48 48 50 51 51 42 13
SEND TNS=3, 64 48 48 70 65 48 56 48 48 48 48 50 48 48 48 48 48 48 48 48 48 48 ? ? ? ? 70 67 48 51 48 49 48 49 66 48 48 48 48 48 48 48 48 48 48 49 48 56 42 13
@ 0 0 F A 0 8 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 F C 0 3 0 1 0 1 B 0 0 0 0 0 0 0 0 0 0 1 0 8 * CR
RCVD TNS=3, 64 48 48 70 65 48 48 67 48 48 48 48 50 48 48 48 48 70 67 48 48 48 48 48 48 48 51 48 49 48 49 48 48 48 48 48 48 48 50 51 50 42 13
SEND TNS=4, 64 48 48 70 65 48 56 48 48 48 48 50 48 48 48 48 48 48 48 48 48 48 70 67 48 52 48 49 48 49 66 48 48 48 48 48 48 48 48 48 48 49 48 70 42 13
RCVD TNS=4, 64 48 48 70 65 48 48 67 48 48 48 48 50 48 48 48 48 70 67 48 48 48 48 48 48 48 52 48 49 48 49 48 48 48 48 48 48 48 50 51 53 42 13
SEND TNS=5, 64 48 48 70 65 48 56 48 48 48 48 50 48 48 48 48 48 48 48 48 48 48 ? ? ? ? 70 67 48 53 48 49 48 49 66 48 48 48 48 48 48 48 48 48 48 49 48 69 42 13
@ 0 0 F A 0 8 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 F C 0 5 0 1 0 1 B 0 0 0 0 0 0 0 0 0 0 1 0 E * CR
RCVD TNS=5, 64 48 48 70 65 48 48 67 48 48 48 48 50 48 48 48 48 70 67 48 48 48 48 48 48 48 53 48 49 48 49 48 48 48 48 48 48 48 50 51 52 42 13
OK, I am making progress, and again thanks Archie for taking time out of what must be an immense task to even read what I am trying to understand while you have everything else to do...... Really, thanks.
My current non-comprehension is in the decoding of the 'text' area in the FINS command. See below:
Pre Unit# HDR Resp ICF RSV GCT DNA DA1 DA2 SNA SA1 SA2 SID FINS cmmd Text FCS Term
@ XX FA X 80 00 02 XX XX XX 00 00 00 XX XXXX XX * CR
Packet Data 48 48 48 70 65 48 56 48 48 48 48 50 48 48 48 48 48 48 48 48 48 48 70 67 48 49 48 49 48 49 66 48 48 48 48 48 48 48 48 48 48 49 48 65 42 13
Decoded @ 00 FA 0 80 00 02 00 00 00 00 00 FC 01 0101 66 48 | 48 48 48 48 48 48 48 48 48 49 0A * CR
B0 | 00 00 00 00 00 00 | 00 00 00 01
CIO area, 6 bytes for something, 2nd bit in the word
I see where I need to use words for the CIO area, but I don't know what to do with some of the bytes. The low-order 4 bytes points to 0001 which is the 2nd bit (0 being used). B0 is the CIO area and I must use word notation. Are the 6 bytes in the middle, do these represent the 6 possible words in the Input or an Output module?
If so, THAT would make sense.
So, this packet would say 'read the 2nd bit in the 1st word of the 1st module' - yes?