S120 通过111报文用SCL写的基本点定位程序块

已锁定

FREE_ZY

  • 帖子

    6
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2012-05-22

普通 普通 如何晋级?

S120 通过111报文用SCL写的基本点定位程序块

2153

3

2012-07-27 17:46:02

用SCL做了3个块,分别为JOG,MDI,HOMING。比较简单,大家指点下。
由于不能发附件,所以程序贴在下面:
1 HOMING


FUNCTION FC382 : VOID
TITLE = 'The standard for servo HOMING using'
VERSION: '1.0'
AUTHOR: ZY
NAME: zy
FAMILY: ARES

VAR_INPUT
Reset: BOOL; //变频器故障复位
Strat_HOMING: BOOL; //启动 HOMING
DB_No_Control: WORD; //数据保存地址
DB_No_State: WORD; //状态字地址
Servo_No: INT; //伺服电机的序号(在DB数组中的数组号)
Limit_for_homing: BOOL; //回零限位开关
END_VAR

VAR_OUTPUT
HOMING_effect: BOOL; //回零生效
END_VAR

VAR_TEMP
ARRAY_No: INT; //数组地址号
N_Reset: BOOL; //Reset的下降沿
Last_Reset: BOOL; //Reset的上次数据
END_VAR

ARRAY_No:=(Servo_No-1)*24;
WORD_TO_BLOCK_DB(DB_No_Control).DX[(ARRAY_No+4),6]:=TRUE; //enable soft limit function
WORD_TO_BLOCK_DB(DB_No_Control).DX[(ARRAY_No+5),2]:=Limit_for_homing;

IF Reset=TRUE THEN
WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No+1,0]:=FALSE; //Reset fault process: 1,disenable converter; 2,reset pulse; 3,enable converter.
END_IF;
WORD_TO_BLOCK_DB(DB_No_Control).DX[(ARRAY_No+2),1]:=Reset;
N_Reset:=Last_Reset AND (NOT Reset);
Last_Reset:=Reset;
IF N_Reset=TRUE THEN
WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No+1,0]:=TRUE;
END_IF;


WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No+4,0]:=FALSE; //Select HOMING mode, =0: active mode , =1: passive mode.
WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No+4,1]:=TRUE; //Select HOMING direction, =0: positive direction , =1: negative direction.
WORD_TO_BLOCK_DB(DB_No_Control).DW[(ARRAY_No+8)]:=W#16#4000; //Setpoint override , 16#4000 is 100%


IF Strat_HOMING=TRUE THEN //Enable converter,enable HOMING command
WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No+1,0]:=TRUE;
WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No,3]:=TRUE; //use Starter software set HOMING speed valve
WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No,6]:=TRUE;
WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No,7]:=TRUE;
HOMING_effect:= WORD_TO_BLOCK_DB(DB_No_State).DX[ARRAY_No+2,3];
ELSE WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No,3]:=FALSE;
WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No,6]:=FALSE;
WORD_TO_BLOCK_DB(DB_No_Control).DX[ARRAY_No,7]:=FALSE;
END_IF;


END_FUNCTION
S120 通过111报文用SCL写的基本点定位程序块 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SINAMICS

共有8127条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。