gk-auto 发表于 2021-8-18 20:35:27

【干货】西门子S7-1200博途用LAD和SCL语言控制步进电机程序...

西门子S7-1200PLC控制步进电机的梯形图程序西门子S7-1200PLC控制步进电机的梯形图程序,也可以用结构化编程的思路来编程。
首先,新建一个FB,编程语言选择LAD(梯形图)。
然后,在FB编程区编写程序段1~19。
程序段1,M1.2为系统存储器始终为1。手/自动开关为1时,自动模式开启;手/自动开关为0时,手动模式开启。
程序段2,M1.2为系统存储器始终为1。启动使能按钮一个上升沿在步进电机未使能时,置位轴使能;启动使能按钮一个上升沿在步进电机已使能时,复位轴使能。
▼ 程序段1、2https://p26.toutiaoimg.com/img/pgc-image/237366c4c4e146da9907ee488314b066~tplv-tt-shrink:640:0.image

程序段3,步进电机启动使能,调用MC_Power指令程序。
程序段4,步进电机点动模式,调用MC_MoveJog指令程序。
▼ 程序段3、4https://p5.toutiaoimg.com/img/pgc-image/0cdc20d5b68f41ff859522cd325896c5~tplv-tt-shrink:640:0.image

程序段5,在手动模式下,按复位按钮,复位指令启动。
程序段6,步进电机复位模式,调用MC_Reset指令程序。
程序段7,步进自动转换为手动模式的一个脉冲时,触发暂停模式。
▼程序段5、6、7https://p5.toutiaoimg.com/img/pgc-image/1fbe74e2a2a54642ae5c752a6a87b10b~tplv-tt-shrink:640:0.image

程序段8,步进电机暂停模式,调用MC_Halt指令程序。
程序段9,在自动模式下,按复位按钮,回原点指令启动。
▼程序段8、9https://p26.toutiaoimg.com/img/pgc-image/c779e1d6cadc464c9d772b6538c23bcb~tplv-tt-shrink:640:0.image

程序段10,步进电机回原点模式,调用MC_Home指令程序。
程序段11,在自动模式下,按自动启动按钮,开始执行定位运行。
▼ 程序段10、11https://p3.toutiaoimg.com/img/pgc-image/857682c3cb104593ae0c607879aae993~tplv-tt-shrink:640:0.image

程序段12,步进电机原点OK情况下,确认原点的偏差范围为-0.5~+0.5,则认为是原点位置。确认位置1、2的定位偏差范围为-0.5~+0.5。
▼ 程序段12https://p6.toutiaoimg.com/img/pgc-image/4447f5da969a4b128edf21741f359907~tplv-tt-shrink:640:0.image

程序段13,自动开始启动按钮按下,如在原点位置,则调用15.0的定位速度和位置1的定位位置;如在位置1处,则调用20.0的定位速度和位置2的定位位置;
▼ 程序段13https://p26.toutiaoimg.com/img/pgc-image/841df27732864f5f9e6f955cc537280c~tplv-tt-shrink:640:0.image

程序段14,定位1、2的触发,统一为定位触发。
程序段15,绝对定位模式,通过上几步的设置为步进电机进行定位。
▼ 程序段14、15https://p26.toutiaoimg.com/img/pgc-image/cb0ee8ffb930427eb8181aa2e78ff5dd~tplv-tt-shrink:640:0.image

程序段16,自动指示灯程序。
程序段17,手动指示灯程序。
程序段18,步进电机启动使能程序
程序段19,步进电机使能异常报警程序。
▼程序段16、17、18、19https://p6.toutiaoimg.com/img/pgc-image/33b0567570294f6b988018e2cf0b37ef~tplv-tt-shrink:640:0.image

最后,我们要在主程序块下调用FB程序,直接在项目树中拖过来放开即可,这里要为FB的输入、输出分配好实参地址。
▼ 主程序块调用FBhttps://p3.toutiaoimg.com/img/pgc-image/1fdeb8e9e4a34dc3b3496023555696b3~tplv-tt-shrink:640:0.image

好了,西门子S7-1200PLC控制步进电机的部分梯形图程序就介绍到这里,实际工程应用大家自行增减。

西门子S7-1200PLC控制步进电机的SCL语言编程
▼ 函数块SCL语言程序https://p5.toutiaoimg.com/img/pgc-image/a26e82ab49774e48ba8a38c5a2eaa37e~tplv-tt-shrink:640:0.image

#轴使能启动(Axis:="步进电机",Enable:=#轴使能_1,StartMode:=1,StopMode:=1);#复位启动(Axis:="步进电机",Execute:=#手动模式_1 AND #复位按钮);"回原点启动"(Axis:="步进电机",Execute:=#自动模式_1 AND #复位按钮,Position:=0,Mode:=3);#点动模式启动(Axis:="步进电机",JogForward:=#正向点动 AND #手动模式_1,JogBackward:=#负向点动 AND #手动模式_1);#绝对定位启动(Axis:="步进电机",Execute:=#绝对定位模式_1,Position:=#位置,Velocity:=#速度);
#上升沿检测(CLK:=#手动模式_1);#暂停模式启动(Axis:="步进电机",Execute:=#上升沿检测.Q);
//以上为指令块调用
#上升沿检测2(CLK:=#启动使能按钮);
IF #上升沿检测2.Q AND NOT #轴使能启动.Status THEN#轴使能_1 := 1 ;END_IF;
IF #上升沿检测2.Q AND #轴使能启动.Status THEN#轴使能_1 := 0 ;END_IF;
#自动模式_1 := #"自/手动切换";
#手动模式_1 := NOT #"自/手动切换";
//以上为按钮的状态
#步进启动2 := #自动模式_1 AND #自动启动 AND "步进电机".StatusBits.HomingDone;
//以上绝对定位方式的自动启动
IF #步进启动2 THENCASE #程序步 OF0:#程序步 := 10;;10:#位置 := #位置1设置值;#速度 := #速度1设置值;#绝对定位模式_1 := 1;#延时处理 := 0;IF #绝对定位启动.Done THEN#绝对定位模式_1 := 0;#程序步:= 15;END_IF;15:#IEC_Timer_0_Instance(IN:=#延时处理,PT:=t#0s);#延时处理 := 1;IF #IEC_Timer_0_Instance.Q THEN#位置 := #位置2设置值;#速度 :=#速度2设置值;#绝对定位模式_1 := 1;END_IF;IF #绝对定位启动.Done THEN#绝对定位模式_1 := 0;#延时处理 := 0;#程序步:= 20;END_IF;20:#IEC_Timer_0_Instance_1(IN:=#延时处理,PT:=t#10s);#延时处理 := 1;IF #IEC_Timer_0_Instance_1.Q THEN#位置 := #位置3设置值;#速度 := #速度3设置值;#绝对定位模式_1 := 1;END_IF;IF #绝对定位启动.Done THEN#绝对定位模式_1 := 0;#延时处理 := 0;#程序步 := 10;END_IF;END_CASE;ELSE#位置 := 0;#速度 := 0;#自动模式_1 := 0;#程序步 := 0;END_IF;//以上为三个位置的定位,预留延时功能
#自动指示灯_1 := #自动模式_1;#手动指示灯_1 := #手动模式_1;#报警指示灯_1 := #轴使能启动.Error;#轴使能指示灯 := #轴使能启动.Status;#原点指示灯_1 := "步进电机".StatusBits.HomingDone;//以上为输出指示灯
▼ Main程序块调用函数块https://p5.toutiaoimg.com/img/pgc-image/c4447bd3e0424d0a8645912addda5ce2~tplv-tt-shrink:640:0.image

yy125977 发表于 2021-8-18 21:09:29

好东西一定要看看!

爱春秋 发表于 2021-8-18 22:03:12

真是难得给力的帖子啊。

zjjxhqp 发表于 2025-11-13 07:24:43

赞同 + 10086,没毛病,完全没毛病

chl1314 发表于 2025-11-13 10:57:52

笑不活了,评论区比正文还精彩!

老蘑菇QAQ 发表于 2025-11-13 11:05:05

哈哈哈哈笑不活,楼主这脑洞绝了!

WURENLIANG 发表于 2025-11-13 19:29:35

笑不活了,评论区比正文还精彩
已转发给朋友,一起快乐一下

M654321 发表于 2025-11-13 21:45:36

这波反向操作,我属实没想到!

如浪 发表于 2025-11-13 21:56:55

这评论区卧虎藏龙,个个都是人才!

牵手 发表于 2025-11-13 22:54:49

求个链接 / 教程,楼主好人一生平安~
页: [1] 2
查看完整版本: 【干货】西门子S7-1200博途用LAD和SCL语言控制步进电机程序...