DEV Community

Cover image for How to Control BissC Absolute Encoder in EtherCAT Motion Controller
ZMOTION CONTROLLER
ZMOTION CONTROLLER

Posted on

How to Control BissC Absolute Encoder in EtherCAT Motion Controller

What is Bissc Absolute Encoder?

BissC means Binary Synchronous Serial Communication . From the name, it can be known it is one digital interface protocol . Moreover, it is one communication protocol for data transferring between motion control and absolute encoder. And one main feature is "master-slave" interface because it uses fast dual-station synchronous serial interface mode.

In BissC protocol, master interface controls the sequence of position capture and data transferring speed, then encoder as the slave interface, mainly to respond main interface's position capture request.

BISS Interface

Image description

From above BISS Interface, it can be seen data transferring is made by two pairs of single-direction differential cables: Clock & Data .

--Clock: transfer "position capture request" and "time sequence information" from master interface to encoder--

--Data: back position data to interface that is synchronous with Clock--

Then for BissC absolute encoder, it is used to measure position and angle, and in industrial automation and control system, it plays an important role because more accurate and more specific position can be obtained by high-frequency signal.

BissC Absolute Encoder

Image description

BissC Absolute Grating Ruler

Image description

How EtherCAT Motion Controller Controls BissC Absolute Encoder?

(1) EtherCAT Motion Controller

A. Valid EtherCAT Motion Controller

For Zmotion, EtherCAT motion controller must meet below requirements:
*Controller Model: ZMC432-V2, ZMC406-V2
*Firmware Version: above 4.930-20190305
*AXIS Interface: for ZMC432-V2 series, only AXIS4/5 support SSI/BISS communication.
You can check through "controller status", if there is "Ssi", which means it supports.

Image description

B. Development

--RTSys: PLC / Basic / HMI.
--PC Languages: C#, C++, LabVIEW, Matlab, Qt, Linux, VB.Net, Python

Image description

For more details, please refer to ZMC432-V2 EtherCAT motion controller user manual.

(2) Wiring between EtherCAT & BissC Absolute Encoder

EtherCAT motion controller supports SSI/BISS communication protocol, it only supports the BissC absolute encoder of 5V power. And whatever BissC absolute encoder uses +5V power supply, the public end must be connected to controller GND.

Image description

ZMC432-V2 AXIS4/5 SSI/BISS

Image description

Wiring between ZMC432-V2 EtherCAT Motion Controller and BissC Absolute Encoder

Image description

(3) Needed Parameters

--ATYPE: Axis Type--

48 = SSI absolute encoder, 49 = BISS absolute encoder

--UNITS: Pulse Amount--

Take BissC absolute grating ruler as the example, resolution is 100nm, then one pulse corresponds to 100nm, 1mm = 10000 pulses, that is, controller sets this axis' UNITS according to this parameter.

--ENCODER_BITS: SSI/BISS Encoder Absolute Bit--

Refer to BissC absolute encoder manual data bit. Some BissC absolute encoders have more auxiliary state bits, generally there are 18-20 bits. ENCODER_BITS can manually adjust it. ENOCDER_BITS = data bit + auxiliary state bit (some encoders don't support).

Image description

(4) Program Configuration

global CONST ENC_AxisStart = 4     'local absolute encoder axis starting axis No.
global CONST ENC_AxisNum = 2     'how many axes of local absolute encoder axes
'set local absolute encoder axis
for i = 0 to ENC_AxisNum - 1
    BASE(ENC_AxisStart + i)
    AXIS_ADDRESS=(-1<<16)+4+i    'map absolute encoder to axis 4, 5
    ENCODER_BITS = 51      '32 bits absolute value, it is with 19 auxiliary state bits
    ATYPE=49               'BISS absolute encoder
Next
Enter fullscreen mode Exit fullscreen mode

(5) Origin Settings

--Grating Ruler--

Use origin configuration tool to set the origin position.

Image description

--General Rotary Absolute Encoder--

Use signal to set origin position.

--Others--

Please contact with encoder manufacturers.

(6) Absolute Encoder Position Reading

A. How to Achieve

Step 1: clear encoder position at origin position.

Step 2: set UNITS

Step 3: read axis 4 / axis 5 MPOS value to get encoder current position, if you need encoder original value, read axis 4 / axis 5 ENCODER.

Note: BissC absolute encoder position supports power failure storage.

B. Example:

Manually rotate BissC absolute encoder, and capture the position curve by oscilloscope, then you will get:

Image description

C. Problems & Solutions

--when downloading, it shows atype 49 error of axis 4 / axis 5--

Please check controller firmware version, it should be above 20190305, if not, contact with us to update it.

--no MPOS / wrong MPOS for axis 4 / axis 5--

Check wiring.

Check encoder_bit parameters, manually adjust the state bit, send "encoder_bits" command in "output" window, see whether parameters are valid.

That's all, thank you for your reading -- How to Control BissC Absolute Encoder in EtherCAT Motion Controller

Top comments (0)