课程中心
HOME
课程中心
正文内容
plc编程 st标准 PLC的标准ST语言编程之运动控制部分
发布时间 : 2025-01-23
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC的标准ST语言编程之运动控制部分

这次我们讲一下PLC控制里面比较重要的一点,伺服轴控制!

用ST语言给大家举例说明一下,通过面向对象编程,把伺服轴当作是一个对象,而轴的使能、绝对运动和相对运动是轴的一个能力。下面示例程序中定义结构化的状态信息(可用作声明),HMI和功能块。

伺服轴的信息结构体

把伺服的一些状态信息设置在ST_states结构体中,可以让其他子程序用这个结构体声明新结构。其它子程序使用这些数据不需要重新再一个一个写这些信息数据,又可以当成局部变量使用,数据互不干涉。

结构体

其它子程序声明用

MC功能块的再次封装

运动控制包括了4个功能块,分别是Axis_IO,Axis_PTP_CoE,FB_Home_ByLimit和ServoDriver_DI。

ServoDriver_DI: 获取伺服驱动上的原点信号,正向限位和负向限位

Axis_IO: 是对ServoDriver_DI继承和丰富,汇总了运动控制用到的所有硬件输入信号

FB_Home_ByLimit: 轴在任意位置回零功能块,无需考虑回零方向问题。该功能块先负方向找原点,如果碰到负极限则改为正方向找原点

Axis_PTP_CoE: 里面封装了Axis轴、MC功能块、Action动作和IO状态。该功能块包括了12个Action,每个Action就相当于NC轴的一个能力。

Axis_PTP_COE.ahome :实现原点搜索的功能

Axis_PTP_COE.aIO :获取原点信号,正向限位和负向限位,并且把伺服驱动和NC报错信息发布给状态机中。

Axis_PTP_COE.aJogB :反向点动

Axis_PTP_COE.aJogF :正向点动

Axis_PTP_COE.aManualJOG :外部硬件控制伺服点动

Axis_PTP_COE.aMoveAbs :绝对运动

Axis_PTP_COE.aMoveOff :复位所有功能块执行标志位及输出

Axis_PTP_COE.aMoveRel :相对运动

Axis_PTP_COE.aMoveVel :速度控制

Axis_PTP_COE.aPower :伺服轴的使能

Axis_PTP_COE.aReset :刷新IO,读取伺服轴的状态,如果有伺服报错,进行错误复位

Axis_PTP_COE.aStop :伺服轴的停止

HMI模板制作

运动控制使用的模板是PH_JOGLINE,该模板中包括了伺服的正反点动按钮,伺服轴名称,伺服轴运动的距离,还有一些伺服的状态位(使能完成的标志位,寻参完成的标志位,正向限位,负向限位,原点信号和NC的报错信息)和报错复位按钮。

hmi

运动控制模板的使用

第一步:程序中声明轴变量

轴变量

第二步:编写程序

axis1.sName:="皮带轴"; //对伺服轴命名,用于区分

axis1.aReset(); //调用相关Action,刷新IO,读取伺服轴的状态

axis1.aPower(); //调用相关Action,对伺服轴使能

IF axis1.Ref.Status.ControlLoopClosed //判断是否完成使能

THEN

axis1.aManualJOG(Velo:=100 , ); //调用相关Action,实现点动功能Velo:=100

END_IF

HMI模板的调用

通过HMI中的Frame控件来调用HMI模板

调用Frame控件之后,进入Frame属性里面设置相关参数:

1) 设置调用HMI控件,选择congfigure,添加PH_JOGLINE_1作为模板。

2) 通过绑定变量Main.axis1,实现控制器上的程序变量和HMI上的控件的对应。

创建NC轴,链接控制器上的轴变量

NC轴

3种PLC软件中来看ST编程中的定时器编程

昨晚的文章用同一段点动控制程序,让大家看了一下博图/三菱/3S,三个品牌PLC中ST编程的一些特点,很相似吧!今天继续用同一段定时器程序,来看看这个3种PLC中对定时器编程的异同!

同样的废话不多说了,直接上动态图来看:

1,博图ST编程调用定时器运行程序:

TIA Portal V14中的SCL程序中对定时器监控动态图

在博图中SCL编程时,因为我是在0B1块中直接写的程序,因此调用调用定时器TON时,其实是调用IEC定时器,相当于一个功能块,熟悉STEP7的人应该知道和SFB4一样,总之是FB块就需要一个DB块,因此我程序中的T1.TON,这个T1其实就是一个DB块,我给他命名成T1了!

同样这个程序就是PB1值为1时,就让CONDITION_OK为真,这样定时器的IN管脚就接通了,定时器就开始工作!时间运行5S后,定时器的Q点也就是STEP_DONE就输出为真了!

PT处是设定的延时时间,T#5S就代表是5秒钟。

注意一下Q=>"STEP_DONE",这里的这个=>符号不是比较的意思,而是输出的意思!

别的就没什么说的了,直接看另外2种PLC程序!

2,三菱ST编程调用定时器运行程序:

GX WORKS3中的定时器程序监控动态图

三菱这个程序是基于FX5U PLC的,这个TON指令,其实属于通用函数/FB下的定时器,和梯形图编程时使用的OUT T0是不一样的! OUT TO,OUTH T0这些不清楚的可以去看一下我的问答!

程序的内容是和上面博图软件中的解释一样的,就是延时接通而已,很简单!继续往下看。

3:3S codesys ST编程调用定时器运行程序:

codesys V2.39中的定时器程序监控动态图

codesys中的定时器和三菱的就很相似了,T1出现在了声明中,且是一个标准功能块FB,可以看一下变量声明中的图片:

T1是被声明成一个TON类型的参数

这个图片上T1不是被声明成TIME,而是声明成TON,这个TON是标准功能块中的一个函数!

从3种编程软件中可以看到,在ST编程中调用定时器时,其实这个定时器是相当于一个FB函数功能块!这个是他们的共同点!

博图/三菱/3S编程软件中ST编程定时器时的用法就如本篇文章所描述的,希望对小伙伴们有点帮助。STEP7软件中的定时器用法,我在问答中也有提及,需要的朋友可以关注我到主页中去搜索!

本文到此结束,感谢阅读!

相关问答

st语言常用指令?

回答如下,ST语言是一种针对可编程逻辑控制器(PLC)的编程语言,其常用指令包括输入输出(I/O)操作指令、计数器指令、比较指令、逻辑运算指令、定时器指令、移...

st编程语言入门教学?

ST编程语言入门教学应从基本概念、ST语言基础语法出发,对ST语言中的变量、表达式、操作符、逻辑结构、数据类型和控制语句等要素进行全面讲解,并结合实例加以...

plc中定时器,st代表什么?

PLC定时器中ST为累计定时器。累计定时器ST主要为:默认0点(低速和高速累计定时器共享)(可改变)。低速和高速累计定时器由指令指定。低速和高速累计定时器的测...

PLCST语句编程for语句的一个小问题J:=101;FORI:=1TO100BY2DO...

[最佳回答]每一次循环,变量I+2呗,直到I>100时,for循环结束

plc的st灯什么意思?

plc的st灯是累计定时器的意思。累计定时器ST主要为:默认0点(低速和高速累计定时器共享)(可改变)。低速和高速累计定时器由指令指定。低速和高速累计定时器...

PLC(可编程序控制器)一共有几种编程方式?

你说的应该是编程语言分几种吧。一般有以下几种:梯形图(LD语言)也有叫LAD语言、顺序功能图(SFC)语言、功能块图(FBD)语言,指令表(IL)语言和结构文本(S...三、F...

Plc的常用参数及其含义?

1、输入/输出点数。输入输出点数是PLC组成控制系统时所能接入的输入输出信号的最大数量,表示PLC组成系统时可能最大的规模。这里有个问题要注意,在总的点数中...

PLC使用ST语言编程如何实现上升沿和下降沿触发?

具体实现方法要取决于所用的PLC系统与软件,虽然IEC标准规定了ST语言的标准,但各家PLC具体操作上是不同的。有些PLC内置了上升沿下降沿检测的模块,直接调用类似...

plc中sr和st区别?

SR是继电器输出的,电压范围宽,5-250VAC或者5-30VDC,电流大,2A,动作频率低;ST是晶体管输出的,电压范围窄24VDC,电流小,0.5A,动作频率高100KHz。...SR是继电...

plc编程中如何用st语言封装气缸?

IFldp(1,X0)THENa:=a+1;IFa=3THENY0:=1;ELSEY0:=0;END_IF;END_IF;IFX0==trueANDM0<...

 同乐岛  任莹莹 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部