步进电机归零的几种模式?阀门电机如何在没有传感器的情况下确定零位

2018-06-12 19:15:37 杨华

机械设备中零位是再常见不过的装置,通常情况下,初始化阶段就是回零,但是面对一些特殊应用,比如阀门应用等,机械系统通常无法或者不好安装机械零位

那么面对这类似应用的时候,电机怎么找到零位呢?

堵转找零,堵转找零通过机械系统的极限位置来确立目标零位的位置,比如阀门,通常在完全关闭的时候,是机械的极限位置,这个时候就可以通过我们的堵转找零工作来确立零点。下面我解析一下这个功能实现的内部代码和参数

以下实现的是input1触发后堵转找零

map U32 Inputs as input 0x60FD:00

map U16 ControlWord as output 0x6040:00

map U16 StatusWord as input 0x6041:00

map S16 Current as input 0x3220:01

map U32 Closeloop as inout 0x3202:00

#include "wrapper.h"


void user()

{

    od_write(0x3202,0x00,1);  

    yield();

    od_write(0x203A,0x01,50);       //堵转电流

yield();

od_write(0x203A,0x02,500);       //堵转时间

yield();

od_write(0x6060, 0x00, 6);         //切换到堵转找零模式

yield();

od_write(0x6098, 0x00, -17);       //堵转找零方向

yield();

od_write(0x6099, 0x02, 100);        //堵转找零速度

yield();  

if((In.Inputs & 0x10000)!=0)

Out.ControlWord = 0x6; //启动步骤

       do {

yield();

       }

       while ( (od_read(0x6041, 0x00) & 0xEF) != 0x21);   

   Out.ControlWord = 0x7;

       do {

           yield();

       }

       while ( (od_read(0x6041, 0x00) & 0xEF) != 0x23);  

   Out.ControlWord = 0xF;

       do {

           yield();

       }

while ( (od_read(0x6041, 0x00) & 0xEF) != 0x27);  

   Out.ControlWord = 0x1F;

       do {

           yield();

   }

while( ( In.StatusWord & 0x400)!=0x400);

yield();

}


nanotec电机具有灵活的拓展性,oem应用可以快速