EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
<== Date ==> <== Thread ==>

Subject: RE: A question on modbus
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: Amber <279762081 at qq.com>, tech-talk <tech-talk at aps.anl.gov>
Date: Tue, 11 Jul 2023 15:48:12 +0000

Hi Kevin,

 

  • There is another command to open the device, which should write " \x01 \x05 \x00 \x00 \xFF \x00  \x8C \x3A" to the device.

 

That is a standard Modbus command.  It uses function code 5 (write single coil) using data="" to address=0.  The value 0xff00 is what the Modbus standard requires to be written to a single coil for the bit value 1.

You need to create another driver with this command:

 

drvModbusAsynConfigure("V1","Init", 1,5,0,1,0,0, "Init")

 

You can create a template file called modbusInit.template in the same directory with your startup script.

 

record(bo,"$(P)$(R)") {

    field(DTYP,"asynUInt32Digital")

    field(OUT,"@asynMask($(PORT) 0 0x1)")

    field(VAL, “1”)

    field(PINI, “YES”)

}

 

That record will process during iocInit (because PINI=YES).  It will write the value 0xff00 to address 0 using function code 5.

 

Load that file in your startup script with the command

 

dbLoadRecords(modbusInit.template”, “P=power:,R=init,PORT=V1”)

 

Mark

 

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Amber via Tech-talk
Sent: Tuesday, July 11, 2023 3:04 AM
To: tech-talk <tech-talk at aps.anl.gov>
Subject: A question on modbus

 

Hello everyone,

 

I am using a device with Modbus-RTU protocol. The communication data is transmitted in hexadecimal words.

I want to use the modbus module in epics to solve this problelm. 

 

When reading device data, the follwing sentence is used in the .cmd file:

 

drvModbusAsynConfigure("V1","Power", 1,3,0,1,0,1000, "Power")

 

and in the substitution file:

 

file "../../db/ai.template" { pattern

{P,         R,      PORT,               OFFSET, BITS,  EGUL,  EGUF,   PREC,   SCAN}

{power:,    V_read,   V1,   0,      16,    0.,   655.35,     2,      "I/O Intr"}

}

 

There is another command to open the device, which should write " \x01 \x05 \x00 \x00 \xFF \x00  \x8C \x3A" to the device.

Command

01

05

00

00

FF

00

8C

3A

Address

Function code

Register address 0

Data 0

CRC

Reply

Be same with command

 

After reading all the examples I still don't know how to send this command with modbus module correctly. I think I didn't understand them clearly.

Would you like to give me some advice?  Is it suitable to use modbus module?  How to realize it?

Thank you very much.

 

with my best wishes,

Kevin

 

 


Replies:
=?gb18030?b?u9i4tKO6UkU6IEEgcXVlc3Rpb24gb24gbW9kYnVz?= =?gb18030?b?QW1iZXI=?= via Tech-talk
References:
A question on modbus Amber via Tech-talk

Navigate by Date:
Prev: RE: [EXTERNAL] Re: EPICS Software Supply Chain Risk Management (SSCRM) Evans, Richard K. (GRC-H000) via Tech-talk
Next: Re: [EXTERNAL] Re: EPICS Software Supply Chain Risk Management (SSCRM) Joshua Einstein-Curtis via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
Navigate by Thread:
Prev: A question on modbus Amber via Tech-talk
Next: =?gb18030?b?u9i4tKO6UkU6IEEgcXVlc3Rpb24gb24gbW9kYnVz?= =?gb18030?b?QW1iZXI=?= via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
ANJ, 13 Jul 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·