Issue
For Modbus RTU Xdriver, if poll too much points or polling is too fast with one xdriver will cause reading 0 issue.
Environment
Continuum 1.9X
BCX1-CR,
Modbus RTU xdriver
Cause
- Poll too much points with one xdriver or polling is too fast ,more than 2 polls per second
- More than one programs polling at the same time
Resolution
- Make sure there is only 1 PE program running to Poll the xdriver points
- Slow down the polls rate ,make sure it is under 2 polls per second,
- If the issue still exist, please do the following steps
- Create a mirror point for each xdriver point,and fill the mirror point in AnnexPoint of Xdriver Point configuration tag
- Create an infinityfunction called PollFunction( as a example) in the BCX1 as below:
Arg 1 XdriverPoint
Numeric count ,i,temp
For count=1 to i
Next count
temp=xdriverPoint
Return(temp)
4. Creat the poll program in BCX1 like below
Numeric count,i,temp, Caller
Line initial
if caller is 0 then goto 1
line 1
i=200
temp=PollFunction(XdriverPoint1)
DisplayPoint1=AnnexPoint1/rate1
goto 2
line 2
temp=PollFunction(XdriverPoint2)
DisplayPoint2=AnnexPoint2/rate2
...
goto waitting
line waitting
Caller=1
goto Initial
5, Follow step4 , create another poll program to poll more xdriver points, change the sytax to caller=1,2....n in the Initial line, and change the sytax to caller=2,3,.....0 in the waitting line to assure there is only one program does poll xdriver point at the same time.
After configure annexpoint, annexpoint will keep the good value and ingore the bad value.