关于定位控制(bbbbbbbbing,调节(Regulated)和控制(Controlled)操作之间存在一些区别。步进电机小需要连续的位置控制,而在控制操作中得到应用。在以下的程序例子中,借助于CPU214所产生的集成脉冲输出,通过步进电机来实现相对的位置控制。虽然这种类型的定位控制小需要参考点,本例还是初略地描述了确定参考点的简单步骤。因为实际上它总是相对一根轴确定一个固定的参考点,因此,用户借助于一个输入字节的对偶码(Duul coding)给CPU指定定位度。用户程序根据该码计算出所需的定位步数,再由CPU输出相关个数的控制脉冲。
例图
硬件要求
程序框图
程序和注释
一、初始化
在程序的第一个扫描周期(SM0.1=1),初始化重要参数。
二、设置和取消参考点
如果还没有确定参考点,那么参考点曲线(Reference Point Curve)应从按“START"(起动)按钮(I1 .0开始。CPU有可能输出最大数量的控制脉冲。在所需的参考点,按“设置/取消参考点”开关((I1.4)后,首先调用停比电机的子程序。然后,将参考点标志位M0.3置成1,再把新的操作模式“定位控制”显示在输出端Q1.0。
如果I1.4的开关己被,而且“定位控制”也被(M0.3=1),则切换到“参考点曲线”操作模式。在子程序1中,将M 0.3置成0,并取消“定位控制”的显示(Q1 .0=0)。此外,控制还为输出最大数量的控制脉冲做准备。当两次I1 .4开关,便在两个模式之问切换。如果此信号产生,同时电机在运转,那么电机就自动停机。
实际上,一个与驭动器连接的参考点开关将代替手动操作切换开关的使用,所以,参考点标志能解决模式切换。
三、定位控制
如果确定了一个参考点(M0.3=1 ),而且没有联锁,那么就执行相对的定位控制。在子程序2中,控制器从输入字节IBO读出对偶码方式的定位度后,再存入字节MB11。与此度有关的脉冲数,根据下面的公式计算:
该示例程序所使用的步进电机采用半步操作方式((S=1000)。在子程序3中循环计算步数。如果说现在按“START”按钮(I1.0), CPU将从输出端Q0. 0输出所计算的控制脉冲个数,而且电机将根据相应的步数来转动,并在内部将“电机转动”的标志位M0.1置成1。
在完整的脉冲输出之后,执行中断程序0,此程序将M0.1置成0,以便能够再次起动电机。
四、停止电机
按“STOP"(停止)按钮(I1.1),可在任何时候停止电机。执行子程序0中与此有关的指令。
本程序长度为147个字。
这里以西门子300系列plc为例,对PLC程序的编写作一些规定:
1.项目(project):用该项目的汉语拼音或汉字命名。
2.工作站(station):以汉语拼音或汉字命名项目中的各工作站。
3.程序块(Block):尽量采用结构化编程,在程序块符号名(Symbolic name)中用汉字概括说明该程序块的主体功能,并在该块的说明(Comment)中用汉字详细描述该程序的功能及主要编程思路。
程序块内每一段落都可以添加程序说明(Network Comment),在必要的地方用汉字描述该段落程序实现的功能。若程序仅能以STL语言描述,则尽可能在每条STL语句后添加相应的汉字说明,以帮助阅读。
4.符号表(Symbols):在其中定义I、Q、M、FC、FB、OB、T、C等的符号名(Symbols)、说明(Comment)和数据类型(Data type)。
为便于查看程序,I、Q、M、T、C等符号名的定义要简洁、明了及便于查找,但至少应包括被定义对象的名称、功能,中间用下划线“_”分隔,如:用M定义电机M202故障,应该为M202_fault或M202_故障。
在符号说明(Comment)中描述该符号定义的具体用途。
某一功能涉及的的符号尽量集中定义。
5.数据块(DB):程序中用到的数据块内的数据,如位、字、浮点数等,均须在数据块内进行定义后才可使用,数据名称(name)的定义要简洁、明了,但至少应包括被定义对象的名称、功能,中间用下划线“_”分隔。
在数据说明(Comment)中描述该名称定义的具体用途。
6.加锁的程序块必须在源程序(Sources)中保留该程序块的源程序。
7.PLC程序中用到的变量都须说明,每份用户程序必须附加变量和符号的命名说明,及用户程序总体设计思路。
8.程序中的关键程序、例程、技巧部分、新系统、相对独立的子程序(函数)等,要详细注释(思路、逻辑关系、每一条语句、前后关联等),同时也独立的形成“知识库文档”分类存档。