西门子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的运动控制功能
PLC运动控制位置模式调试篇(1)
前两篇文章我主要讲解的是运动系统的构成和PLC编程,前面主要讲的是如何去组装和控制一个运动控制系统。那么本文我主要将的就是如何将一运动控制系统整得更加完善,在编程和调试的时候一些小技巧。
初步的原理图不变,这个是一个超级简单的运控控制原理图,他缺少了很多东西。
简单的运动控制原理图
我在之前的原理图上再添加一些编程上的东西,让这个运动控制系统更加的完美。
相对完美一点点的控制系统
报警反馈是我觉得非常重要的一个要点,这个点很多人都会把它忽略掉,虽然不启用这个功能不影响控制,但是这给后期的操作人员和维护人员就有很大的困惑,经常出现设备不动作,不知道什么原因,翻了半天打开电柜才发现原来伺服驱动报警了。这确实是挺尴尬的一件事情,所以我们在做系统的时候遇到伺服报错了需要给人提示,你的伺服驱动器报错了。如果维修人员检查了设备没什么异常想再次开机的时候,你需要给他一个报警复位,复位驱动器,让驱动器能够继续工作。驱动器一旦报警了,自己是不会复位的,需要你给它一个清除报警的信号,或者是断电重启。我经常干的就是断电重启,这个方法听说很伤设备,但是它能解决百分之九十的问题,还剩那百分之十我也搞不定,只能换个新的了。
首先我们先了解一下伺服器报警的种类
松下伺服报警代码
这只是松下伺服驱动器报警的代码,不同品牌的伺服驱动器报警代码要看他们自己家的说明书,说明书里会有详细的解释和故障处理的方法,
还有一个就是PLC的运动控制报警代码
西门子运动控制报警代码
报警不单单是伺服驱动器会报警,我们的PLC也会报错。不同的PLC他们也有自己的定义。所以故障报警主要是分两个部分,一个是PLC程序报警,一个是伺服驱动器报警。
一般来说PLC程序报警主要出现在刚开发的时候,PLC程序写得有问题引起的,一般调试完成之后PLC程序报警故障的可能性比较小,无非就是超程报警等小故障,无伤大雅。
伺服驱动器报警大多数的代码就是过载报警,过载报警一般都是撞机了,运动系统撞到东西了,哪里卡住了,伺服电机过载引起的报错。这个是最经常也是最惊心动魄的报警,调得设备多了撞多了就习惯了。其他的报错可以根据说明书上说的故障处理去做,实在不行可以请教伺服驱动器的厂家售后。我是最喜欢给这样厂家售后打电话的,现在很多厂家的技术售后做得也是非常到位的,讲解的也非常的到位,问题一般都能得到解决。
这里说到报警就要提到上两篇文章说到的极限限位开关的问题,我曾经说过最完善的运动控制系统需要五个限位开关,两个上极限,两个下极限,一个原点限位。但是我们一般只用三个,两个极限一个原点。对于定位控制系统最少只需要一个原点开关。这里我就仔细的讲解一下为什么。
一个原点开关,主要是当我们运动控制系统在定位控制的时候出现偏差之后我们需要一个参考点,我们可以通过寻找参考点重新建立坐标系。恢复我们的定位系统坐标。
三个限位开关,两个极限开关加一个原点。这两个上下极限开关我们可以接到PLC或者接到伺服驱动器。这样的话我们就能够判断我们的工作台是否在运动的时候超出了极限位置,工作台超过极限位置是非常危险的。
五个限位开关,一组上下极限接伺服驱动器,一组上下极限接到PLC,一个原点开关。这样如果工作台移动超过了极限位置,限位开关有信号之后,PLC或者伺服驱动器就会报错,如果同时接触到就会同时报错。如果是非常大的项目,安全起见我还是建议五个限位开关都装好。这样真的会安全很多,我之前在富士康工作的时候,人家老外设计生产线的运动控制系统每一个轴全部都是五个限位开关的。
调试之前的准备工作:1、接线检查,2、参数设置,3、参数计算。
1、接线检查就不说了,这都是基本的调试之前应该按照电气图检查接线。
2、参数设置
伺服驱动器要根据自己选择的模式在伺服驱动器里设置相应的参数,我在之前的文章说过伺服主要有三种工作模式:1、位置模式,2、扭矩模式,3、速度模式。
那我怎么切换这三种模式呢,那就要在伺服驱动器里面去设置修改相应的参数就可以了。下面我就把参数设置的总图截图一下。
参数一览表
参数设置的注意事项
这里说了四种模式位置控制、速度控制、转矩控制和全闭环控制。
我这里大概说一下几个常用的参数,有一些参数我自己也不明白,有想知道的可以去问厂家的技术支持。
1、PR0.00旋转方向的设定。
旋转方向设置
注意一下设Rr0.00参数后面带了一个*号,也就是说这个参数修改了之后,要断电重启才会生效,这个在说明书的下方有说,但是很多人都没注意到,所以经常怀疑自己没设置好。
2、Pr0.01 控制模式的设置,这就是刚刚说的切换位置模式还是转矩模式的参数。
控制模式设定
3、Pr0.05 脉冲输入选择
脉冲输入选择
4、Pr0.06、Pr0.07脉冲模式选择
脉冲模式选择
5、Pr0.08 电机旋转一圈所需要的脉冲数
这个是伺服驱动器控制电机运转的参数,伺服驱动器会根据接收到的脉冲去控制伺服电机的动作,伺服电机的编码器会反馈电机实际的动作,单看伺服系统来说,伺服系统是一个闭环的控制。
但整体的看一个运动控制系统是不是闭环控制要看他是否有位移反馈给到控制系统,像我经常做的运动控制系统就是半闭环的。这里我只能是大概的讲解一下,具体的细节还是需要自己电话请教厂家的技术服务,他们才是最专业的。
6、驱动器SI点和SO的设置
这个一般不需要做修改,只需要检查一下就可以,出厂一般都是设置好了的,按默认的走就可以了,除非说这个输入点或者输出点换了我们需要临时更换一下点位。
一般要修改的就是限位开关的常开和常闭,这个是可以根据实际情况在这里去修改伺服驱动器里面的参数。这个很重要,很多人都会忽略这个IO点的设置。很多时候伺服驱动器不能正常工作,或者报错都是因为这个IO点没设置好。
检查好了这些参数之后,我们就可以开始把运动控制系统手动点动起来。
下一篇文章我会讲解PLC上的调试和labview,触摸屏和组态王等上位机的简单讲解。
相关问答
三菱PLCA系列,通信模块,伺服驱动器,伺服电机如何完成位置控制模式的定位控制?
先把伺服驱动器设置成定位控制模式(一般默认都是定位模式),再按照定位模式把伺服驱动器的控制线接好,然后编写程序。A系列也可以使用定位来控制伺服定位。...
什么是plc相对位置?
PLC相对位置指的是一种控制器的运动定位方式,它通过编程的方式来监控和控制物体的运动,从而实现定位和精确定位的目的。其核心思想是通过寻找物体位置与目标...
plc寻址编程方法?
1.PLC寻址编程方法有多种。2.首先,常见的一种方法是直接寻址编程,即通过指定PLC的输入输出点的地址来进行编程。这种方法简单直接,适用于简单的控制任务。另...
s7-200中远程PLC地址怎么确定?
默认是2,如想更改,在下载的时候,系统设置菜单里有相应的地址,下载成功,PLC地址就是编程软件里设定的。X0-X33为输入信号,地址0-33八进制Y0-Y233为输出...
plc在错误模式或不在终端怎么处理?
PLC显示通信错误,一般先检查PLC的通信参数配置是否正确,如果是串口通信的就检查串口号,波特率等,如果是网络通信的就检查IP地址是否配置好。通信参数没有问题...
plc变址原理及使用方法?
变址就是改变PLC内部数据存储器的地址,三菱FX系列用V或Z为变址寄存器,使用方法如D1V1,这个变址代表的意思为,当V1=0时D1V1=D1,当V1=1时,D1V1=2。任何一款计...
ABplc是怎么编址的,远程又是如何编址的?
ab的controllogix系列plc没有地址的概念,而是采用符号名编程某一个模块的通道只要标记一个变量名,以后就能直接访问了,无需关心什么地址远程io也是一样ab...
step7micro如何看plc地址?
对于Step7Micro/Win软件,您可以通过以下步骤查看PLC的地址:1.打开Step7Micro/Win软件并打开您的项目。2.在项目资源树中,展开"PLC"文件...
plc组态地址什么意思?
PLC组态地址是指在PLC程序中用来表示设备、变量、数据或指令的一段特定的字符或数字组合。每个PLC组态地址都对应着程序中的一个特定的元素,如输入/输出模块、...
西门子plc地址类型?
1.西门子PLC地址类型有三种,分别是输入地址、输出地址和中间地址。2.输入地址用于接收外部信号,输出地址用于控制外部设备,中间地址用于存储中间结果或中间...