To help clarify and add to Russ B comments Modules with Firmware -A B C D E does not do Modbus Communications. You need module with FG or later. Due to this module not being manufactured anymore. If you are to locate them they are extremely pricy. Not to mention in 5 years you might not be able to find any. What I have been doing is upgrading to the RX3i some places want that much for a CMM321 module and it is more cost affective and a more reliable choice to upgrade. With that said and to add to Russ's comments. The 90-30 with the CMM321 REV Fx or better you need to do COMM_REQ with BLKMOV. Here is an example of Opening a channel request. Use the GFK2220..as a reference Hope it helps.
Example of a open channel and a read registers
Copy and paste this into you machine edition.
COMMENT /* This is the Application to Open Channel to Cumminicate With the TSXETG100 VIA Modbus TCP and Read Data on 8 channels From the ACM 3300 Power Meters */; END_RUNG;
NCCON OPN_CHNL_TMR,G,%M01034; NCCON CONN_SUCSS,G,%M00031; TMR_TENTHS R09044,G,%R09044 250; H_WIRE; TMR_TENTHS R09047,G,%R09047 1; H_WIRE; H_WIRE; H_WIRE; H_WIRE; COIL OPN_CHNL_TMR,G,%M01034; END_RUNG;
NCCON TMR_OS,G,%M01029; NOCON CONN_SUCSS,G,%M00031; TMR_TENTHS R09032,G,%R09032 15; H_WIRE; OFDT_TENTHS R09035,G,%R09035 1; H_WIRE; H_WIRE; H_WIRE; H_WIRE; COIL TMR_OS,G,%M01029; END_RUNG;
NOCON LAN_IF_OK,G,%I00016; NOCON LAN_OK,G,%I00013; NCCON Channel1_status_bit,G,%I00017; NCCON #FST_SCN,G,%S00001; NCCON CONN_SUCSS,G,%M00031; NOCON OPN_CHNL_TMR,G,%M01034; H_WIRE; H_WIRE; H_WIRE; POSCOIL T00021,G,%T00021; END_RUNG;
NOCON T00021,G,%T00021; BLKMOV_WORD 8 0 8 2039 0 0 3000 R07041,G,%R07041; H_WIRE; H_WIRE; BLKMOV_WORD 3 1 4 172 16 244 25 R07048,G,%R07048; END_RUNG;
COMMENT /* Move 0 to Commreq Status Word and trigger Commreq. */; END_RUNG;
NOCON T00021,G,%T00021; COMM_REQ R07041[0],G 2 0 ; END_RUNG;
COMMENT /* Check if channel successfuly opened and trigger next Commreq. */; END_RUNG;
H_WIRE; EQ_INT LANOK,G,%R02040 1 ; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; POSCOIL T00022,G,%T00022; R+; C+1; V_WIRE; END_RUNG;
H_WIRE; EQ_INT LANOK,G,%R02040 1 ; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; COIL CONN_SUCSS,G,%M00031; R+; C+1; V_WIRE;
COMMENT /* This section Reads the Registers from the Panel Meters and displays then into the proper registers. */; END_RUNG;
NCCON WRITE_CMD_ON,G,%M01042; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; COIL M00498,G,%M00498; END_RUNG;
COMMENT /* COMMENT8 */; END_RUNG;
NOCON M00498,G,%M00498; TMR_TENTHS R00780,G,%R00780 25; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; NCCOIL M00499,G,%M00499; END_RUNG;
NCCON M00499,G,%M00499; MOVE_INT 1 3 R00003[1],G; END_RUNG;
NOCON TMR_OS,G,%M01029; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; POSCOIL M00003,G,%M00003; END_RUNG;
NOCON M00003,G,%M00003; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; SETCOIL M00100,G,%M00100; END_RUNG;
NOCON M00100,G,%M00100; GT_INT R00750[0],G 12 ; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; COIL M00101,G,%M00101; R+; C+1; V_WIRE; END_RUNG;
NOCON M00100,G,%M00100; TMR_TENTHS R00750,G,%R00750 12; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; POSCOIL M00001,G,%M00001; END_RUNG;
NOCON #ALW_ON,G,%S00007; NCCON M00001,G,%M00001; H_WIRE; UPCTR R00023,G,%R00023 ** 8; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; COIL M00002,G,%M00002; R+; NOCON M00002,G,%M00002; NCCON M00499,G,%M00499; H_WIRE; R+; NOCON M00002,G,%M00002; NOCON WRITE_CMD_ON,G,%M01042; C-; V_WIRE; END_RUNG;
NOCON M00001,G,%M00001; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; RESETCOIL M00100,G,%M00100; R+; NOCON M00101,G,%M00101; C-; V_WIRE; END_RUNG;
NOCON TMR_OS,G,%M01029; MOVE_INT 1 1 R00002,G,%R00002; END_RUNG;
COMMENT /* BOILER
*/; END_RUNG;
NOCON #ALW_ON,G,%S00007; NCCON M00499,G,%M00499; NOCON CONN_SUCSS,G,%M00031; EQ_INT R00023[0],G 0 ; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; COIL M01035,G,%M01035; R+; C+2; C+1; V_WIRE; END_RUNG;
NOCON M01035,G,%M01035; NCCON M00913,G,%M00913; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; H_WIRE; POSCOIL T00001,G,%T00001; END_RUNG;
NOCON T00001,G,%T00001; BLKMOV_INT 8 0 8 2039 0 0 3003 R07041,G,%R07041; H_WIRE; H_WIRE; BLKMOV_INT 3 3 8 100 11 32 1 R07048,G,%R07048; END_RUNG;
NOCON T00001,G,%T00001; COMM_REQ R07041[0],G 2 0 ;