Experimental Physics and Industrial Control System
|
Hi Dan,
I am not familiar with RIO. Here at SLAC we are using Beckhoff for
number of different applications. We mostly use simple Beckhoff
devices, like ADC, DAC, digital IO, which are relatively easy to
deal with, in spite off that each of these modules has a number of
hidden registers. In these modules, hidden registers need to be
accessed only to change some configuration parameters. Recently,
one of the experimenters added Beckhoff stepper motor controllers.
In these devices, there are hidden registers that need to be
accessed frequently to monitor the position of the motor. There are
other hidden registers that also need to be accessed to set up the
motor motion. Because of all this, life became a bit more
difficult.
Thanks for your reply,
Zen
On 05/17/13 13:52, DJ Roberts wrote:
Hi Zen,
This is my first post to this tech-talk. I was surprised to
see that the Beckhoff hides much of its useful memory.
Have you tried a RIO? I recently used one and the whole
array table is read/write via modbus and all operations are
done in one modbus packet. I even wrote some embedded code to
store some interesting data in the array so I could get at it
via the modbus front end. Here's the one I used:
http://www.galilmc.com/products/rio-47xxx.php
-Dan
-------- Original Message
--------
Hi Mark,
I am still working on an IOC to control stepper motors with Beckhoff
devices (KL2431 and KL2541). I am using your modbus (R2.2) support module.
Beckhoff devices are called bus terminals. A bus terminal has two types
of registers.
One is a small set, typically 2 and in the case of the KL25x1 terminals
3, that one can read from or write to directly. Let's call them
visible. The poll thread in modbus does IO to these registers.
The other type is what I call "internal" or invisible registers. One can
access these registers via the visible registers only. Hence, multiple
operations need to be performed on the visible registers to either read
from or write to an invisible register.
I find that while I am writing to one of the invisible registers, at
times the periodic reading from the visible registers in the poll
thread, interferes with the writing process.
I assume that I can control the poll timeout using your
poll_delay.template record.
So, I am thinking that I need to change the poll timeout for the
terminal I am trying to write to to "disable" poll reading from the
terminal. I use seq records to sequence these read and write operations
and I could add at the beginning of the sequence a request to set the
timeout, to let's say 10 seconds, and at the end of the sequence restore
the original timeout.
Is the thread woken up when a new timeout value is written out to the
modbus module?
Is there a better way to make sure that the poll reads do not interfere
with the reading from and writing to the invisible registers?
Thanks Mark,
Zen
|
- References:
- Re: Fwd: Modbus DJ Roberts
- Navigate by Date:
- Prev:
Re: AW: Modbus Zenon Szalata
- Next:
More on Modbus Zenon Szalata
- 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
2023
2024
- Navigate by Thread:
- Prev:
Re: Fwd: Modbus DJ Roberts
- Next:
Modbus Zenon Szalata
- 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
2023
2024
|
ANJ, 20 Apr 2015 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|