Hello, I am having an issue communicating between PLC-HMI combo of 4PPC70-101G-23B and a Belimo NMV-D3-MOD HVAC actuator with Modbus comms.
I am using the DRV_mbus library with the modification of included example.
4PPC70 has RS485 on IF9.
Belimo is configured with 9600 8N1 ModbusRTU, address 10.
I want to read addresses 0000-0013.
Using the provided code I always get error 20210 from MBMaster, which is "mbERR_ILG_IDENT Invalid ID or ID is 0 ". Yes, the returned ident=0 in monitor mode;
I presume this means that the block can’t even open comms. Which smells to me like bad interface addressing possibly. What is the correct address here for interface “IF9”? I have tried both “IF9” and “SL0.SS1.IF9”, second of which is more similar to the original example, no success, same error 20210.
I have configured my IF9 as follows. I tried all permutations of Activating ModbusRTU on the bottom, activating terminating resistor, no change.
This is in datamod.dat file:
"LibDRVmbus.EventDev1Read ", 03, $0A, "LibDRVmbus.LocalDev1Read ", 0000, 0013
This is in INIT program (.status is 8258 which I was not able to find at the first glance)
Master.MBMOpen_0.enable := TRUE;
Master.MBMOpen_0.pDevice := ADR(‘IF9’); (* Device description string )
Master.MBMOpen_0.pMode := ADR(‘/PHY=RS485 /PA=N /DB=8 /SB=1 /BD=9600’); ( Mode description string )
Master.MBMOpen_0.pConfig := ADR(‘datamod’); ( Data object name )
Master.MBMOpen_0.timeout := 5000; ( Timeout in milliseconds (the value must be a multiple of 10 and >250ms) )
Master.MBMOpen_0.ascii := 0; ( 0 = RTU / 1 = ASCII *)
Master.MBMOpen_0();
And CYCLIC (.status is 20210)
IF (Master.S1 = FALSE) THEN
Master.MBMaster_0.enable := TRUE;
Master.MBMaster_0.ident := Master.MBMOpen_0.ident;
Master.MBMaster_0();
ELSE
I am going to check with oscilloscope on the RS485 lines to see if there is anything coming out of IF9 at all, to narrow down whether this is physical addressing issue or config.
Any ideas? Thanks!