西门子1200PLC位置控制的通用程序,一劳永逸
西门子1200PLC最多支持4路高速脉冲输出,可以控制四个步进或伺服电机,如果每个轴都调用一次运动控制值,编程工作量就会成倍的增加。那么有没有通用的程序可以一劳永逸呢,今天就介绍一下西门子1200PLC位置控制的通用程序,编写一个函数就可以实现多个轴的控制。
一、 编写运动控制函数
1. 添加函数块。双击“添加新块”、点击“函数块”、输入名称、编程语言LAD、“确定”;
图 1 新建函数块
2. 双击“位置控制”函数块,定义输入/输出变量;
图 2 定义输入输出变量
3. 添加运动控制指令。“指令”、“工艺”、“运动控制”、拖动MC_Power指令到编程区域,分配多重背景数据块,点击“确定”;
图 3 添加MC_Power指令
4. MC_Power分配变量;
图 4 MC_Power
5. 同样的方法添加MC_Reset确认故障指令;
图 5 MC_Reset
6. 添加MC_Home回原点指令;
图 6 MC_Home
7. 添加MC_Halt停止轴指令;
图 7 MC_Halt
8. 添加MC_MoveAbsolute绝对运动定位指令;
图 8 MC_MoveAbsolute_
9. 添加MC_MoveRelative相对运动定位指令;
图 9 MC_MoveRelative
10. 添加MC_Jog点动指令;
图 10 MC_Jog
11. 读取轴当前位置和当前运行速度;
图 11 读取当前位置和速度
二、主程序调用函数块
1. 双击“Main”,打开主程序,拖动“位置控制”到主程序编辑区,分配背景数据块,点击“确定”,完成函数块FB1的调用;
图 12 调用函数块
2. 分配控制命令和状态变量;
图 13 分配变量
三、 点动控制
1. 下载程序到PLC中,打开监控表,输入监控变量;
图 14 监控表
2. “正向点动”赋值1,旋转料库开始正向运行,“当前位置”开始累加,“当前速度”逐渐增大到设置的点动速度,“正向点动”清零即停止,“当前速度”降为零;
图 15 正向点动
3. “负向点动”赋值1,旋转料库开始负向运行,“当前位置”开始负累加,“当前速度”值逐渐增大到设置的点动速度,符号代表方向,“负向点动”清零即停止,“当前速度”降为零;
图 16 负向点动
四、 回原点
1. “回原点”赋值1,回原点模式为0(把当前位置设置为绝对零点),“当前位置”变为零,“回原点完成”有效,表示回零完成;
图 17 回原点
2. “回原点”清零,“回原点完成”清零,不影响绝对零点位置;
五、 相对运动控制
1. “相对运动距离”和“相对运动速度”赋值,注意速度的范围(在启停速度和最大速度之间),运动距离的符号代表方向;
图 18 设置相对运动参数
2. “相对运动触发”赋值1,上升沿触发指令执行,旋转料库按照设置的速度运动设置的距离“相对运动完成”有效时停止;
图 19 相对运动1
3. “相对运动触发”清零,重复以上步骤,每次都运动设定的距离;
图 20 相对运动2
六、绝对运动控制
1. 绝对运动控制之前先执行回原点,确定绝对零点位置;
2. “绝对运动目标位置”和“绝对运动速度”赋值,注意速度的范围(在启停速度和最大速度之间);
图 21 设置绝对运动参数
3. “绝对运动触发”赋值1,上升沿触发指令,旋转料库安装设置的速度运动到目标位置,“绝对运动完成”有效时停止,当前位置等于目标位置;
图 22 绝对运动1
4. 修改目标位置的值,重复以上步骤;
图 23 绝对运动2
通过以上步骤,创建一个通用的运动控制函数,在运动控制程序中调用此函数,分配对应的各轴相关的变量,就可以实现一劳永逸,大幅减少编程工作量。
本文由@豆豆牵着蜗牛在散步 原创,欢迎关注,帮您一起长知识!
西门子1200PLC 配置运动控制工艺,控制面板实现位置控制
西门子1200PLC的运动控制功能
西门子S7-200指令解析
一丶西门子PLC的分类
1)S7-200系列小型机,和S7-200SMART为同一系列,因价格便宜,主要供应于中国及一些发展中国家,欧洲已被淘汰。
2)S7-1200系列1200PLC 比200PLC更紧凑,支持的点数更多,功能更全面。编程风格与200PLC差距很大,和300PLC、400PLC类似。所以200PLC消失后,西门子的PLC编程风格即将统一。
3)S7-300系列中型机
4)S7-1500系列S7-1500PLC相对与300PLC来讲比300PLC高一个档次,无论是从速度、处理能力、处理时间都不错,不过由于价格较300PLC高,所以应用不是很广泛。
5)S7-400系列大型机
二丶S7-200 PLC面板介绍
三丶S7-200 PLC数字量输入/输出口的内部结构
1)S7-200 PLC数字量输入输出口的表示方法
DI输入地址编号:I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7I1.0 I1.1 I1.2 I1.3 I1.4 I1.5 I1.6 I1.7I2.0。。。。。。。。。
DO输出地址编号:Q0.0 Q0.1 Q0.2 Q0.3 Q0.4 Q0.5 Q0.6 Q0.7Q1.0 Q1.1 Q1.2 Q1.3 Q1.4 Q1.5 Q1.6 Q1.7Q2.0。。。。。。。。。
2) 数字量输入接口(DI)的内部结构
数字量(开关量)输入口是把现场的开关量信号变成PLC内部处理的标准信号。数字量输入口有直流输入型、交流输入型和交流/直流输入型。其中直流输入型内部结构如图所示:
直流、交流为外接电源的类型。数字量输入接口中都有滤波电路及耦合隔离电路,滤波有抗干扰的作用,耦合有抗干扰及产生标准信号的作用。
3)数字量输出接口(DO)的内部结构
作用:把PLC内部的标淮信号转换成现场执行机构所需的开关量信号 。
分类:继电器型 (交/直流)、晶体管型(直流型)、晶闸管型(交流型)
数字量输出接口(DO)几点说明:
① 各类输出接口中也都具有隔离耦合电路。
② 特别注意:输出接口本身都不带电源,而且在考虑外驱动电源时,还需考虑输出器件的类型。
③ 继电器型的输出接口可用于交流及直流两种电源,但通断频率低。
④ 晶体管型的输出接口有较高的通断频率,但只适用于直流驱动的场合。
⑤ 晶闸管型的输出接口仅适用于交流驱动场合。
(5)PLC接线端子介绍
1)CPU226接线端子
CPU226 AC/DC/RLY的含义:
AC含义为电源为交流
DC含义为数字量输入为直流输入
RLY(继电器)含义为输出为继电器类型,负载既可以是交流也可以是直流型
2) CPU224接线端子
CPU224 DC/DC/DC的含义:
第一个DC含义为电源为直流
第二个DC含义为数字量输入为直流输入
第三个DC含义为输出为直流型,即负载是直流负载
3) S7-200扩展模块
1. S7-200系列PLC编程语言
梯形图编程(Ladder)语句表编程(Statement List)功能图编程(Function Block)2. PLC工作原理
采用循环扫描工作方式:
系统周而复始地依一定的顺序完成一系列的具体的工作,这种工作方式叫做循环扫描工作方式。
其中,用户程序的完成可分为以下三个阶段
1. 输入继电器(I)
输入继电器用于接收外部开关信号,一般都有个PLC的输入端子与之对应。当外部开关闭合时,其对应存储单元里面的数为1,该存储单元在程序中作输入继电器使用,相当于输入继电器的线圈通电,常开触点闭合,常闭触点断开。这些触点可以在编程时使用次数不受限制。S7-200提供的输入继电器的地址范围是:I0.0~I15.7,共128个
举例分析:I2.2作为一个输入继电器(实际上仅仅是存储单元),包括抽象意义上的线圈、常开触点和常闭触点。
当与I2.2口相连的开关闭合时,存储单元I2.2里面的数为1,程序中把I2.2作为继电器使用,其线圈通电(状态变为ON),其常开触点闭合,常闭触点断开。当与I2.2口相连的开关断开时,存储单元I2.2里面的数为0,程序中把I2.2作为继电器使用,其继电器线圈断电(状态变为OFF),常开触点恢复到断开,常闭触点恢复到闭合。
一句话概括:有输入时,常开触点通,常闭触点断。无输入时,二者相反。
2. 输出继电器(Q)
输出继电器一般都有一个PLC上的输出端子与之对应。当通过程序使得输出继电器线圈通电时(如图1所示),PLC上的输出端开关闭合,它可以作为控制外部负载的开关信号。同时在程序中其常开触点闭合,常闭触点断开。这些触点在编程时使用次数不受限制。S7-200提供的输入继电器的地址范围是:Q0.0~Q15.7,共128个
举例分析:Q0.0作为一个继电器,包括抽象意义上的线圈、常开触点和常闭触点。当该继电器线圈通电时(状态变为ON),存储单元Q0.0里面的数变为1,同时其常开触点闭合,常闭触点断开。该继电器线圈断电时,存储单元Q0.0里面的数变为0,其常开触点恢复到断开,常闭触点恢复到闭合。在PLC电源中断后,状态将变为OFF。当电源恢复后,除因程序使其变为 ON外,其它仍保持OFF。在梯形图程序中存储单元Q0.0的使用如下所示。
上图中,当常开触点I2.2通时,Q0.0线圈通电(状态变为ON),其所对应的存储单元里面的数变成1,同时其常开触点闭合常闭触点断开。
Q0.0线圈通电后,对应Q0.0口输出有效。
输入/输出继电器的几点说明
①输入继电器位于PLC存储器的输入映像寄存器区域。在每次扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像寄存器中,PLC在接下来的本周期各阶段不再改变输入映像寄存器中的值,直到下一个扫描周期的输入采样阶段。
②输出继电器位于PLC存储器的输出映像寄存器区域。输出继电器线圈只能使用程序指令驱动。
在扫描周期的结尾,CPU将输出映像寄存器的数值复制到物理输出点上,也就是把程序执行的结果传递给负载。
I0.0作为继电器,先存储单元里面的数为1,然后线圈通电,而Q0.0相反。
1. 复位、置位指令的应用
2. 上升沿、下降沿的应用
3. 中间继电器(M)
又称为辅助继电器, 主要来存储信息,如图。S7-200提供的中间继电器的地址范围是:M0.0~M31.7,共256个,分为两类:
①普通中间继电器 (M0.0~M13.7),在PLC电源中断后,状态变为OFF。当电源恢复后,除因程序使其变为 ON外,其它仍保持OFF。
②停电保持型中间继电器(M14.0~M31.7),在PLC电源中断后,它具有保持断电前的瞬间状态的功能,并在恢复供电后继续断电前的状态。
中间继电器线圈由程序指令驱动,每个中间继电器都有无限多对常开常闭触点,供编程使用。
4.特殊继电器(SM)
它提供了CPU和用户程序之间传递信息的方法,可用于存储系统的状态变量、有关控制参数和信息等。用户可以使用这些位选择和控制CPU的一些特殊功能。
SM0.0 PLC处于RUN状态时,它始终为“1”或处于导通状态。
SM0.1 初始化脉冲。PLC开始运行时,SM0.1接通一个扫描周期。
SM0.5 该位提供时钟脉冲,该脉冲在1秒钟的周期时间内OFF(断开) 0.5秒,ON(接通)0.5秒。
计数器(C)
(1)CTU-加计数器
地址编号范围:C0~C255,计数范围:0~32767
当R=0(I2.3断开)时,计数器可以计数;
当CU端有上升沿输入时,计数器当前值加1;
当计数器当前值等于设定值(PV)时,状态位置1,即其触点动作;
当计数器当前值大于设定值(PV)时计数器仍计数,不影响计数器的状态位,直至计数达到最大值(32767);
当R=1(I2.3接通)时,计数器复位,即当前值清零,状态位也清零。
(2)CTUD-加/减计数器
地址编号范围:C0~C255,计数范围:-32767~32767
当R=0 (I2.3断开)时,计数脉冲有效;
当CU端有上升沿输入时,计数器当前值加1,当计数器当前值大于或等于设定值时,状态位置1,即其触点动作;
当CD端有上升沿输入时,计数器当前值减1,当当前值刚好小于设定值时, 状态位清0,其触点复位;
当R=1 (I2.3接通)时,计数器复位,即当前值清零,状态位也清零。
(3)CTD-减计数器
地址编号范围:C0~C255,计数范围:0~32767
LD=0(I2.3断开)时,计数器有效,CD端每来一个脉冲的上升沿,当前值减1计数,当前值从预置值开始减至0时,计数器的状态位置1,其触点动作,此时,CD端再有脉冲到来时,当前值保持0不变;
LD=1 (I2.3接通)时,当前值等于预置值,计数器的状态位置0。
定时器(T)
PLC的定时器相当于电器系统中的时间继电器,S7-200系列PLC的定时器是对内部时钟脉冲计数来完成定时的。有1ms、10ms、100ms 三种脉冲。 PLC中一个完整的定时器包括:
一个16位的当前值寄存器用以存放当前值; 1~32767
一个16位的
预置值寄存器用以存放时间的设定值;1~32767
一位状态位。
定时器的工作原理是:使能输入有效后,对PLC内部的脉冲进行增1计数,当计数值大于或等于定时器的预置值后,状态位置1,其常开触点闭合,常闭触点断开。
T37为其状态位,当计数达20次后,状态位变为1,常开触点闭合。
定时时间为20×100ms=2s
(1)通电延时定时器 TON
通电延时定时器含义?
使能端(IN)接通时工作,当计数值大于或等于定时器的预置值后,状态位置1;断开时复位,状态位和计数值均复位。
通电延时定时器工作时,其使能端接通的时间一定要大于其预置值时间(定时时间)。
(2)记忆型通电延时定时器 TONR
使能端接通时,定时器开始计时,当前值递增,当前值大于或等于预置值(PT)时,输出状态位置1。使能端断开时,当前值保持(记忆),使能端再次接通有效时,在原记忆值的基础上递增计时。
注意:TONR记忆型通电延时型定时器采用线圈复位指令R进行复位操作,
当复位线圈有效时,定时器当前值清0,输出状态位清0。
(3)断电延时定时器 TOF
使能端接通时,定时器输出状态位立即置1,当前值复位为0。
使能端断开时,定时器开始计时,当前值从0递增,当前值达到预置值时,
定时器状态位复位为0,并停止计时,当前值保持。
如果输入断开的时间小于预定时间,定时器仍保持接通。IN再接通时,定时器当前值仍设为0。
TOF和TON 共享同一组定时器,不能重复使用。
即不能把一个定时器同时用作TOF和TON。例如,不能既有TON T37,又有TOF T37。
高速计数器(HC)
Siemens编程器S7-200系列带有高速计数器。常用于各种步进,伺服脉冲定位控制。在设备的控制系统中,有关运动控制是很重要的,下面我们来看一看西门子S7-200系列PLC怎样来实现这个功能。
(1)高速计数器的符号
高速计数器在程序中使用时的地址编号用HCn表示,HC为高速计数器名称,n为编号。HCn除了表示高速计数器的编号外,还代表两方面的含义:高速计数器位和高速计数器当前值。编程时,从所用的指令可以看出是位还是当前值。
(2)高速计数器的工作模式
高速计数器的工作模式共12种,选用某个高速计数器在某种工作模式下工作,高速计数器的输入端不是任意选择,必须按系统指定的输入点。
(3)高速计数器控制指令
(4)高速计数器的特殊寄存器
在了解高速计数器特殊寄存器之前应该先了解
常用的数制有二进制、十进制、十六进制(H字母结尾)等进制之间的转换。
三种数制之间的转换关系如下:
B为Byte(字节),一个字节称为一个单元,由8位二进制组成。例: SMB37是由SM37.0、SM37.1——SM37.7共8位组成。
W为word(字),一个字由2个字节,16位二进制组成。例:SMW38由SMB38和SMB39组成。
D为Double word(双字),即两个字,一个双字由4个字节组成,SMD38是由SMB38、SMB39、SMB40和SMB41组成。
注:①在程序中不可同时出现SMW38和SMW39 ;
②SMD38和SMD42是相邻的两个双字。
(4)高速计数器的特殊寄存器
每个高速计数器都有固定的特殊功能存储器与之配合。
(5)高速计数器的编程
高速计数器的编程方法有两种,一是采用梯形图或语句表进行正常编程,二是通过STEP7-Micro/WIN 编程软件进行引导式编程。不论那一种方法,都先要根据计数输入信号的形式与要求确定计数模式;然后选择计数器编号,确定输入地址。
高速计数器的编程使用向导。
高速脉冲发生器PTO
S7-200 有两个内置PTO/PWM 发生器,用以建立高速脉冲串(PTO)或脉宽调节(PWM)信号波形。一个发生器指定给数字量输出口Q0.0,另一个发生器指定给数字量输出口Q0.1。 当组态一个输出为PTO 操作时,生成一个50%占空比脉冲串用于步进电机或伺服电机的速度和位置的开环控制。内置PTO 功能提供了脉冲串输出,脉冲周期和数量可由用户控制。但应用程序必须通过PLC 内置I/O 口提供方向和限位控制。 为了简化用户应用程序中位控功能的使用,STEP7--Micro/WIN 提供的位控向导可以帮助用户在很短的时间内全部完成PWM、PTO 或位控模块的组态。向导可以生成位置指令,用户可以用这些指令在其应用程序中为速度和位置提供动态控制。
在了解PTO指令之前让我们先了解一下伺服电机
伺服电机
永磁同步交流伺服电机带动转盘转动,伺服电机内部的转子是永久磁铁,驱动器控制的U、V、W 三相电形成电磁场,转子在此磁场的作用下转动,同时电机自带的编码器反馈信号给驱动器,驱动器根据反馈值与目标值进行比较,调整转子转动的角度。伺服电机的精度决定于编码器的精度(线数)。
1. 认知伺服驱动器
交流永磁同步伺服驱动器主要有伺服控制单元、功率驱动单元、通讯接口单元、伺服电动机及相应的反馈检测器件组成,其中伺服控制单元包括位置控制器、速度控制器、转矩和电流控制器等,结构组成如图所示。
以松下的伺服驱动器为例,有七种控制运行方式,即位置控制、速度控制、转矩控制、位置/速度控制、位置/转矩、速度/转矩、全闭环控制。 位置控制方式就是输入脉冲串来使电机定位运行,电机转速与脉冲串频率相关,电机转动的角度与脉冲个数相关。速度方式有两种,一是通过输入直流-10V 至+10V 电压调速,二是选用驱动器内设置的内部速度来调速;转矩方式是通过输入直流-10V 至+10V 电压调节电机的输出转矩,这种方式下运行必须要进行速度限制。 伺服系统用作定位控制时,位置指令输入到位置控制器,速度控制器输入端前面的电子开关切换到位置控制器输出端,同样,电流控制器输入端前面的电子开关切换到速度控制器输出端。因此,位置控制模式下的伺服系统是一个三闭环控制系统,两个内环分别是电流环和速度环。 由自动控制理论可知,这样的系统结构提高了系统的快速性、稳定性和抗干扰能力。在足够高的开环增益下,系统的稳态误差接近为零。这就是说,在稳态时,伺服电机以指令脉冲和反馈脉冲近似相等时的速度运行。反之,在达到稳态前,系统将在偏差信号作用下驱动电机加速或减速。若指令脉冲突然消失(例如紧急停车时,PLC立即停止向伺服驱动器发出驱动脉冲),伺服电机仍会运行到反馈脉冲数等于指令脉冲消失前的脉冲数才停止。
2. 伺服驱动器外部接线
(1)XA:电源输入接口,AC220V 电源连接到L1、L3 主电源端子,同时连接到控制电源端子L1C、L2C 上。断开该电源,伺服驱动器便可断电。
(2)XB:电机接口和外置再生放电电阻器接口。U、V、W 端子用于连接电机。必须注意,电源电压务必按照驱动器铭牌上的指示,电机接线端子(U、V、W)不可以接地或短路,交流伺服电机的旋转方向不像感应电动机可以通过交换三相相序来改变,必须保证驱动器上的U、V、W接线端子与电机主回路接线端子按规定的次序一一对应,否则可能造成驱动器的损坏。电机的接地端子、驱动器的接地端子以及滤波器的接地端子必须保证可靠的连接到同一个接地点上。机身也必须接地。B1、B3、B2 端子是外接放电电阻, 本设备中没有使用外接放电电阻。
(3)X6:连接到电机编码器信号接口,连接电缆应选用带有屏蔽层的双绞电缆,屏蔽层应接到电机侧的接地端子上,并且应确保将编码器电缆屏蔽层连接到插头的外壳(FG)上。
(4)X4:I/O 控制信号端口,其部分引脚信号定义与选择的控制模式有关,不同模式下的接线请参考《松下A 5 系列伺服电机手册》。本设备中,伺服电机用于定位控制,选用位置控制模式。
1. 高速脉冲发生器PTO的建立
借助位控向导组态PTO 输出时,需要用户提供一些基本信息,逐项介绍如下:
(1)最大速度(MAX_SPEED)和起动/停止速度(SS_SPEED) MAX_SPEED 是允许的操作速度的最大值,它应在电机力矩能力的范围内。驱动负载所需的力矩由摩擦力、惯性以及加速/减速时间决定。 SS_SPEED 的数值应满足电机在低速时驱动负载的能力,如果SS_SPEED 的数值过低,电机和负载在运动的开始和结束时可能会摇摆或颤动。如果SS_SPEED 的数值过高,电机会在启动时丢失脉冲,并且负载在试图停止时会使电机超速。通常,SS_SPEED 值是MAX_SPEED 值的5%至15%。
(2)加速和减速时间 加速时间ACCEL_TIME:电机从SS_SPEED 速度加速MAX_SPEED速度所需的时间。 减速时间DECEL_TIME:电机从MAX_SPEED 速度减速SS_SPEED速度所需要的时间。 加速时间和减速时间的缺省设置都是1000 毫秒。通常,电机可在小于1000 毫秒的时间内工作。这2 个值设定时要以毫秒为单位。 电机的加速和失速时间通常要经过测试来确定。开始时,应输入一个较大的值。逐渐减少这个时间值直至电机开始失速,从而优化应用中的这些设置。
(3)移动包络 一个包络是一个预先定义的移动描述,它包括一个或多个速度,影响着从起点到终点的移动。一个包络由多段组成,每段包含一个达到目标速度的加速/减速过程和以目标速度匀速运行的一串固定数量的脉冲。PTO 支持最大100 个包络。定义一个包络,包括如下几点:选择操作模式、为包络的各步定义指标、为包络定义一个符号名。
①选择包络的操作模式 PTO 支持相对位置和单一速度的连续转动两种模式,相对位置模式指的是运动的终点位置是从起点侧开始计算的脉冲数量。单速连续转动则不需要提供终点位置,PTO 一直持续输出脉冲,直至有其他命令发出,例如到达原点要求停发脉冲。
②包络中的步 一个步是工件运动的一个固定距离,包括加速和减速时间内的距离。PTO 每一包络最大允许29 个步。每一步包括目标速度和结束位置或脉冲数目等几个指标。注意一步包络只有一个常速段,两步包络有两个常速段,依次类推。步的数目与包络中常速段的数目一致。
2. 认知PTO各功能块
(1)PTO0_CTRL功能块:
(控制)启用和初始化PTO输出。请在用户程序中只使用一次,并且请确定在每次扫描时得到执行。即始终使用SM0.0作为EN的输入,如图所示。
①输入参数:
■ I_STOP(立即停止)输入(BOOL型):当此输入为低时,PTO功能会正常工作。当此输入变为高时,PTO立即终止脉冲的发出。
■ D_STOP(减速停止)输入(BOOL型):当此输入为低时,PTO功能会正常工作。当此输入变为高时,PTO会产生将电机减速至停止的脉冲串。② 输出参数
■ Done(“完成”)输出(BOOL型):当“完成”位被设置为高时,它表明上一个指令也已执行。
■ Error(错误)参数(BYTE型):包含本子程序的结果。当“完成”位为高时,错误字节会报告无错误或有错误代码的正常完成。
■ C_Pos(DWORD型):如果PTO向导的HSC计数器功能已启用,此参数包含以脉冲数表示的模块当前位置。否则,当前位置将一直为0。
命令 PLC 执行存储于配置/包络表的指定包络运动操作。运行这一功能块的梯形图如图所示。
(2)PTO0_RUN功能块(运行包络):
①输入参数:
■ EN位:子程序的使能位。在“完成”(Done)位发出子程序执行已经完成的信号前,应使 EN 位保持开启。
■ START 参数(BOOL型):包络的执行的启动信号。对于在START参数已开启,且PTO当前不活动时的每次扫描,此子程序会激活PTO。为了确保仅发送一个命令,一般用上升沿以脉冲方式开启START参数。
■ Abort(终止)命令(BOOL型):命令为 ON 时PTO停止当前包络,并减速至电机停止。
■ Profile(包络)(BYTE型):输入为此运动包络指定的编号或符号名。
② 输出参数
■ Done(完成)(BOOL型):本子程序执行完成时。输出ON。
■ Error(错误)(BYTE型):输出本子程序执行的结果的错误信息。无错误时输出0。
■ C_Profile(BYTE型):输出位控模块当前执行的包络。
■ C_Step(BYTE型):输出目前正在执行的包络的步。
■ C_Pos(DINT型):如果PTO向导的HSC计数器功能已启用,则此参数包含以脉冲数作为模块的当前位置。否则,当前位置将一直为0。
(3)PTO0_LDPOS功能块(装载位置):
改变PTO脉冲计数器的当前位置值为一个新值。可用该指令为任何一个运动命令建立一个新的零位置。图是一个使用PTO0_LDPOS指令实现返回原点完成后清零功能的梯形图。
①输入参数:
■ EN位:子程序的使能位。在“完成”(Done)位发出子程序执行已经完成的信号前,应使 EN 位保持开启。
■ START(BOOL型):装载启动。接通此参数,以装载一个新的位置值到PTO脉冲计数器。在每一循环周期,只要START参数接通且PTO当前不忙,该指令装载一个新的位置给PTO脉冲计数器。若要保证该命令只发一次,使用边沿检测指令以脉冲触发START参数接通。
■ New_Pos 参数(DINT型):输入一个新的值替代C_Pos报告的当前位置值。位置值用脉冲数表示。② 输出参数
■ Done(完成)(BOOL型):模块完成该指令时,参数 Done ON。
■ Error(错误)(BYTE型):输出本子程序执行的结果的错误信息。无错误时输出0。
■ C_Pos(DINT型):此参数包含以脉冲数作为模块的当前位置。
PTO指令错误代码
错误代码描述
0 无错误,正常完成
1 在运行中立即发出 STOP指令。STOP命令成功完成
2 在运行中执行减速 STOP命令。 STOP命令成功完成
3 在脉冲发生器中或 PTO表的格式化中检测到的执行错误
127 发生 ENO 错误。检查 PLC信息以获取关于非致命错误的描述128 忙碌。已有其它 PTO操作在运行
129 立即 STOP和减速 STOP命令已同时启用,导致的结果是立即停止
130 PTO指令当前正被命令为 STOP
132 所请求的包络编号超出范围S7-200 开环运动控制
注意:
PTO的建立,要明白当PTO报错时显示错误代码的含义,伺服电机错误代码的含义,伺服电机所接在端子排上的每一根线的意义,若线没接好或者虚接会出现什么结果,需要清楚,当电机不动时,要会排除是程序原因还是伺服原因,查看方法:监控程序,看看有没有调用PTOO_CTRL,如果已经调用了,看看D_STOP是否已导通,如果以上两步都没问题需要查看电机运行所在的子程序是否已调用,如果存在网络读写指令的话,查看两者存储地址是否存在包含关系,两者存储地址应为两个不同的地址,不能有任何的牵连关系。倘若以上都是正常的话,则需要查看伺服与Q0.0相连的线是否接好,24V、0V是否接好。伺服电机方向不正确存在三个原因,其一没置位方向,其二伺服方向线没接好,其三伺服参数设置错误。
1. 西门子PPI 通信概述
SPPI 协议是S7-200 CPU 最基本的通信方式,通过原来自身的端口(PORT0 或PORT1)就可以实现通信,是S7-200 默认的通信方式。PPI 是一种主—从协议通信,主—从站在一个令牌环网中,主站发送要求到从站,从站响应;从站不发信息,只是等待主站的要求并对要求作出响应。如果在用户程序中使能PPI 主站模式,就可以在主站程序中使用网络读写指令来读写从站信息。而从站程序没有必要使用网络读写指令。
2. 实现PPI 通信的步骤
(1)对每一台PLC,设置其系统块中的通信端口参数,对用作通信的端口(PORT0 或PORT1),指定其地址(站号)和波特率。设置后把系统块下载到该PLC。具体设置如下:把CPU226端口0 设为1 ,波特率为了19.2 ,CPU 224端口0 设为2 ,波特率为了19.2 。
(2)编写主站网络读写程序段,如前所述,在PPI 网络中,只有主站程序中使用网络读写指令来读写从站信息。而从站程序没有必要使用网络读写指令。在编写主站的网络读写程序前,应预先规划好下面数据:
① 主站向从站发送数据的长度(字节数)。
② 发送的数据位于主站何处。
③ 数据发送到从站的何处。
④ 主站从各从站接收数据的长度(字节数)。
⑤ 主站从从站的何处读取数据。
⑥ 接收到的数据放在主站何处。
以上数据,应根据系统工作要求,信息交换量等统一筹划。考虑本设备中,工作站PLC 所需交换的信息量不大,发送和接收的数据均1 个字节已经足够。
编制主站的网络读写程序简便的方法是借助网络读写向导。这一向导程序可以快速简单地配置复杂的网络读写指令操作,为所需的功能提供一系列选项。一旦完成,向导将为所选配置生成程序代码。并初始化指定的PLC为PPI 主站模式,同时使能网络读写操作。
网络读写编程大致有如下几个步骤:
规划本地和远程通信站的数据缓冲区
写控制字SMB30(或SMB130)将通信口设置为PPI主站
装入远程站(通信对象)地址
装入远程站相应的数据缓冲区(无论是要读入的或者是写出的)地址
装入数据字节数
执行网络读写(NetR/NetW)指令
各CPU的通信口地址在各自项目的SystemBlock(系统块)中设置,下载之后起作用。
调用NetR/NetW指令
多数网络读写的不正常现象,除了硬件设备和软件设置的问题外,与在用户程序中调用网络读写指令的方式有关。包括看起来通信正常,但经过一段时间(可能是几天)后也会出现故障的现象。
使用用NetR/NetW时,应当注意:
避免简单地定时激活NetR/NetW:由于串行通信的特点,无法得知何时真正结束。如果定时进行网络读写通信,必须判断此次通信是否正常结束 同时有效的NetR/NetW指令不能超过8个,否则通信请求队列会超出操作系统的管理能力 使用SM0.0调用网络读写指令,虽然能长期工作,但不能超过8个指令,而且会出现监控时指令块变为红色的现象,最好还是加上必要的读写状态判断条件。 最简单可靠的方法,是使用Micro/WIN中的NetR/NetWWizard(网络读写指令向导)。
使用NetR/NetW向导可以编辑最多24条网络读写指令,其核心是使用顺序控制指令,这样在任一时刻只有一条NetR/NetW指令有效。如果要求超出24条网络读写指令,可以自己按照此方法编程。 清除网络读写指令数据缓冲区中的(故障)状态字节可以恢复“死掉”的通信。但还是建议用户采用比较正规的编程方法。 NETR/NETWWizard-网络读写指令向导 只有在PPI通信中做主站的CPU才需要用NETR/NETW向导编程。
配置NETR/NETW向导:
如果感觉文章还不错欢迎点赞关注评论转发。
相关问答
西门子plc回原点程序怎么写?
西门子plc回原点程序写方法:一、编写程序。首先在项目树中打开PLC_1下面的程序块文件夹,双击MAIN打开程序编辑器,在项目视图右侧的指令中,打开位逻辑运算文...
维控plc原点回归如何控制方向?
要控制维控plc原点回归的方向,首先需要在plc程序中确定原点回归的方向,正常情况下原点是从右开始转到左,然后再从左转到右。然后根据PLC的程序,确定相应的输...
三菱PLC的ZRN指令原点回归问题三菱PLC的ZRN(FNC156)是原点回...
[最佳回答]“实际上运用原点回归指令这条指令已经规定了这条指令的回归原点的方向”也就是说假如在原点左边那么回原点则会向右,若在原点右边那么回原点则会向...
plc用一个感应器怎样准确控制伺服电机回原点?
不知道你用的什么PLC和伺服。一个感应器就够了。首先返回原点的设置需要PLC的参数设置,比如需要设定寻找方向,寻找速度等。然后需要一个感应器,一般都为接近开...
ABB机器人回原点方式是什么呢?
ABB机器人回原点方式有两种:一种是通过外部信号(如PLC信号)触发机器人回到设定的原点位置;另一种是通过机器人自身编程,在程序中设置回到原点位置的指令。...
西门子plc用脉冲指令怎么回原点?
西门子PLC使用脉冲指令回原点的方法一般有以下两种:使用限位开关触发:当执行RP寻找操作时,遇到限位开关会引起方向反转,使寻找能够继续下去。使用四种参考点...
plc原点回归与原点搜索哪个更准?
PLC原点搜索功能更准确PLC原点搜索功能更准确
三菱plc回原点DZRN指令,在同一个程序里是否只能用一次?
在同一个程序中,可以使用多次三菱PLC的回原点指令DZRN。DZRN指令用于将指定轴(或轴群)控制对象返回到原点位置。在三菱PLC编程中,可以在需要的位置多次使用D...
PLC有干扰怎么解决?
PLC(可编程逻辑控制器)干扰的原因可能是由于电气设备中其他线路产生的噪声、电磁干扰等。为了解决PLC干扰的问题,可以采取以下措施:1.使用屏蔽电缆:在电缆...
三菱plc回原点哪些作用?
首先你要设定的速度一回原点,碰到原点后以你设定的速度二继续转动,直到原点开关断开。三菱PLC的ZRN(FNC156)是原点回归指令。要讲清楚ZRN原点回归指令具体的...