# read modbus in OPC

**URL:** <https://forums.digi.com/t/read-modbus-in-opc/7519>\
**Category:** Digi One IA/IAP\
**Created:** [September 7, 2012, 3:42pm UTC](https://forums.digi.com/t/read-modbus-in-opc/7519 "2012-09-07T15:42:16Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ebarraganifd](https://avatars.discourse-cdn.com/v4/letter/e/919ad9/32.png) [@ebarraganifd](https://forums.digi.com/u/ebarraganifd)\
**Post date:** [September 7, 2012, 3:42pm UTC](https://forums.digi.com/t/read-modbus-in-opc/7519/1 "2012-09-07T15:42:16Z")

</div>

Hello world.

I’m using a ConnectPort X4, a Xbee SmartPlug and Xbee sensor.

My CPX4

Model: ConnectPort X4  
Firmware: 2.15.0.6 (Version 82001536\_L 07/25/2012)  
POST: 1.1.3 (release\_82001753\_F)

I need to read smart plug and sensor variables in a OPC server(Kepserver).

this is my configuration for IA:

#\> show ia all

set ia table=1 state=on name=Modbus Sensor family=modbus accessmode=multi  
set ia table=1 ownerperiod=15000  
set ia table=1 addroute=1  
set ia table=1 route=1 active=on type=ip protaddr=1-10 protocol=modbustcp  
set ia table=1 route=1 transport=udp connect=passive address=127.0.0.1  
set ia table=1 route=1 ipport=8502 replaceip=off slavetimeout=1000  
set ia table=1 route=1 chartimeout=50 idletimeout=0 lineturnmode=off  
set ia table=1 route=1 fixedaddress=0 rbx=off

IA Serial: Nothing Configured

set ia master=1 active=on type=tcp ipport=502 protocol=modbustcp table=1  
set ia master=1 priority=medium messagetimeout=5500 chartimeout=50  
set ia master=1 idletimeout=0 lineturnmode=off errorresponse=on  
set ia master=1 broadcast=replace  
set ia master=2 active=on type=udp ipport=502 protocol=modbustcp table=1  
set ia master=2 priority=medium messagetimeout=5500 chartimeout=50  
set ia master=2 idletimeout=0 lineturnmode=off errorresponse=on  
set ia master=2 broadcast=replace

this is a trace:

#\> set trace state=on mask=ia:i

1102418:ia:INFO:mbtcp:m00 recv req 250  
1102421:ia:INFO:mbtcp:s00 send req 250  
1102549:ia:INFO:mbtcp:s00 recv resp 250  
1102549:ia:INFO:mbtcp:s00 last message, 127 msec to complete  
1102549:ia:INFO:mbtcp:s00 start rsp min:15 avg:124 max:322 msec  
1102549:ia:INFO:mbtcp:s00 full rsp min:15 avg:124 max:323 msec  
1102552:ia:INFO:mbtcp:m00 last message, 134 msec to complete  
1102553:ia:INFO:mbtcp:m00 send resp 250  
1102553:ia:INFO:mbtcp:m00 full rsp min:62 avg:130 max:242 msec  
1132245:ia:INFO:mbtcp:m00 recv req 251  
1132250:ia:INFO:mbtcp:s00 send req 251  
1132389:ia:INFO:mbtcp:s00 recv resp 251  
1132389:ia:INFO:mbtcp:s00 last message, 139 msec to complete  
1132389:ia:INFO:mbtcp:s00 start rsp min:15 avg:124 max:322 msec  
1132389:ia:INFO:mbtcp:s00 full rsp min:15 avg:125 max:323 msec  
1132393:ia:INFO:mbtcp:m00 last message, 147 msec to complete  
1132393:ia:INFO:mbtcp:m00 send resp 251  
1132393:ia:INFO:mbtcp:m00 full rsp min:62 avg:131 max:242 msec  
1162924:ia:INFO:mbtcp:m00 recv req 252  
1162928:ia:INFO:mbtcp:s00 send req 252  
1162982:ia:INFO:mbtcp:s00 recv resp 252  
1162983:ia:INFO:mbtcp:s00 last message, 54 msec to complete  
1162983:ia:INFO:mbtcp:s00 start rsp min:15 avg:121 max:322 msec  
1162983:ia:INFO:mbtcp:s00 full rsp min:15 avg:121 max:323 msec

this is my yml file:

devices:

- name: xbee\_device\_manager  
driver: devices.xbee.xbee\_device\_manager.xbee\_device\_manager:XBeeDeviceManager

- name: xbee\_autoenum  
driver: devices.xbee.xbee\_devices.xbee\_autoenum:XBeeAutoEnum  
settings:  
discover\_rate: 600  
xbee\_device\_manager: “xbee\_device\_manager”  
devices:  
- name: “auto\_sensor”  
driver: “devices.modbus.mbdia\_xbee\_sensor:MBusXBeeSensor”  
settings:  
sleep: true  
sample\_rate\_ms: 12000  
awake\_time\_ms: 1000  
- name: “auto\_smart\_plug”  
driver: “devices.modbus.mbdia\_xbee\_rpm:MBusXBeeRPM”  
settings:  
sample\_rate\_ms: 10000  
default\_state: “Off”  
device\_profile: “fluor-mag”

- name: mbus  
driver: devices.modbus.mbus\_udp\_device:MBusUDPDevice  
settings:  
poll\_rate\_sec: 30  
udp\_peer: (‘127.0.0.1’,502)  
trace: ‘debug’  
round: 3  
poll\_list:  
- poll: in01  
pollinfo: { ‘uid’:1, ‘fnc’:3, ‘ofs’:0, ‘cnt’:20 }  
channels:  
- parse: { ‘nam’:‘panel’, ‘ofs’:3, ‘frm’:‘]H’, ‘unt’:‘vdc’, ‘typ’:‘float’, ‘expr’:‘(%d/1000.0)\*3.25’ }  
- parse: { ‘nam’:‘battery’, ‘ofs’:4, ‘frm’:‘]H’, ‘unt’:‘vdc’, ‘typ’:‘float’, ‘expr’:‘(%d/1000.0)\*3.25’ }  
- parse: { ‘nam’:‘load’,‘ofs’:5,‘frm’:‘]H’,‘unt’:‘vdc’, ‘typ’:‘float’, ‘expr’:‘(%d/1000.0)\*3.25’ }  
loggers:

- name: embedded\_log  
driver: channels.logging.file\_logger.file\_logger:FileLogger  
settings:  
filename: “WEB/python/idigi\_dia.log”  
event\_volume\_size\_k: 256

presentations:

- name: web  
driver: presentations.web.web:Web  
settings:  
page: “idigi\_dia”  
polling: 1  
use\_default\_httpserver: false

- name: console0  
driver: presentations.console.console:Console

- name: mbus\_srv  
driver: presentations.modbus.mbdia\_pres:MbDiaPresentation  
settings:  
mapping: “(‘auto’, 1, 20)”  
auto\_enum\_name: “xbee\_autoenum”

this is my mbus\_map.txt

# Dia Modbus Server unit\_id mapping as of 2012-09-07 13:52:18

1,‘IFD - Smart Plug’,‘XBeeRPM’,‘[00:13:a2:00:40:60:f3:3a]!’  
2,‘IFD - Sensor’,‘XBeeSensor\_LT’,‘[00:13:a2:00:40:69:05:09]!’

I follow all about modbus with this pages:

> **[Digi Python Wiki Archive](https://docs.digi.com/resources/documentation/digidocs/90001537/)**

> **[Digi Python Wiki Archive](https://docs.digi.com/resources/documentation/digidocs/90001537/)**

Everything seems ok, but I cant read what I need

In Kepware this is the result:

Device ‘digi.CPX4’ block request [400001 to 400001] responded with exception 6

In modbuspoll I get:

Slave Device Busy

I need help to make it work properly…

Thanks a lot, see you soon.

---

<div class="post-metadata">

**Author:** ![ebarraganifd](https://avatars.discourse-cdn.com/v4/letter/e/919ad9/32.png) [@ebarraganifd](https://forums.digi.com/u/ebarraganifd)\
**Post date:** [September 8, 2012, 4:34pm UTC](https://forums.digi.com/t/read-modbus-in-opc/7519/2 "2012-09-08T16:34:10Z")

</div>

I have deleted the IA table I created before, so the Dia server create a valid table.

#\> show ia all  
set ia table=1 state=on name=DiaModbus family=modbus accessmode=multi  
set ia table=1 ownerperiod=15000  
set ia table=1 addroute=1  
set ia table=1 route=1 active=on type=ip protaddr=0-255 protocol=modbustcp  
set ia table=1 route=1 transport=udp connect=passive address=127.0.0.1  
set ia table=1 route=1 ipport=8502 replaceip=off slavetimeout=1000  
set ia table=1 route=1 chartimeout=50 idletimeout=0 lineturnmode=off  
set ia table=1 route=1 fixedaddress=0 rbx=off  
IA Serial: Nothing Configured  
set ia master=1 active=on type=tcp ipport=502 protocol=modbustcp table=1  
set ia master=1 priority=medium messagetimeout=5500 chartimeout=50  
set ia master=1 idletimeout=0 lineturnmode=off errorresponse=off broadcast=off  
set ia master=2 active=on type=udp ipport=502 protocol=modbustcp table=1  
set ia master=2 priority=medium messagetimeout=5500 chartimeout=50  
set ia master=2 idletimeout=0 lineturnmode=off errorresponse=off broadcast=off

But nothing yet…

Any idea please…

Thanks, see you soon.
