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:
http://www.digi.com/wiki/developer/index.php/Modbus_Dia_Code_Add-On
http://www.digi.com/wiki/developer/index.php/Modbus_Dia_Server
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.