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  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: the hex instruction convert
From: "Mark Rivers" <[email protected]>
To: "Damek Yahto" <[email protected]>, <[email protected]>
Date: Tue, 16 Nov 2010 10:18:19 -0600

Hi Yahto,

 

There are a number of options for where you build the strings.

 

Since this is a motor, do you want to treat it like a motor, with the ability to set the velocity and acceleration, detect limit switches, have soft limits, etc.?  If so, then you should consider using the EPICS motor record.  In that case you would write an asyn driver that constructs the strings and uses asynOctetSyncIO to send and receive strings from the underlying drvAsynSerialPort driver.  There are a number of examples in the EPICS “motor” module, including the Newport XPS, PMAC and other drivers.

 

Mark

 

 


From: [email protected] [mailto:[email protected]] On Behalf Of Damek Yahto
Sent: Monday, November 15, 2010 9:06 PM
To: [email protected]
Subject: the hex instruction convert

 

HI Tech-talk,I am trying to build an IOC to communicate with serial devices through the serial to Ethernet Device Server.

The serial device supports the streams of hex format.

The binary command format when using RS232 or RS485 is as follows:
Bytes    Meaning
1        Module address
1        Command number
1        Type number
1        Motor or Bank number
4        Value (MSB first!)
1        Checksum
total: 9 bytes

the checksum is calculated by adding up all bytes (including the module address byte) using
8-bit addition. Here is the examples to show how to do this:
    in C:
    unsigned char i, Checksum;
    unsigned char Command[9];

    //Set the “Command” array to the desired command
    Checksum = Command[0];
    for(i=1; i<8; i++)
        Checksum+=Command[i];
    Command[8]=Checksum; //insert checksum as last byte of the command
     //Now, send it to the module

I want to control the motor to rotate right  through the serial device.

Instruction:
Rotate right,   motor #1, velocity = 350
Binary:
Byte Index         0                1              2            3                  4               5                6                7               8
Function          Target-     Instruction   Type      Motor/         Operand     Operand      Operand     Operand      Checksum
                      address    Number                     Bank           Byte3        Byte2         Byte1          Byte0
Value (hex)        0x01       0x01          0x00       0x01            0x00         0x00            0x01           0x5e            0x62

By writing streamDevice protocol file(out'\x01\x01\x00\x01\x00\x00\x01\x5e\x62';),motor will rotate. Using "EDM" or "caput" to

input the variable,where do I do my processing (like calculating the Checksum and convert the velocity to four bytes long)? where

write my own parsing code in C?having other approaches. Could you give any example?

Thanks,

Yahto Dam
2010.11.16


References:
the hex instruction convert Damek Yahto

Navigate by Date:
Prev: RE: asyn driver on Windows XP Mark Rivers
Next: RE: the hex instruction convert peter.owens
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: the hex instruction convert Damek Yahto
Next: RE: the hex instruction convert peter.owens
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Nov 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·