电工学习网

 找回密码
 立即注册
查看: 4667|回复: 0

关于编辑plc控制程序“位”操作的记录

[复制链接]
发表于 2018-9-20 12:31:50 | 显示全部楼层 |阅读模式
这段时间着手准备为我司涂装线改造准备一些编程思路。是将原2条没有关联是流水线,通过ABB机器人分别将2条线上的工件转移到一条加工线上。其中,需要考虑的问题是流水线取件先后顺序的判断,结果给机器人执行线上工件优先取件的判断,看了提问的内容,感觉这个思路刚刚与提问的雷同,现写一下思路分享一下或许可以参考。
编程思路:
1)  将2条流水线的位置到达信号,关联到一个连续的字中;其实,也是可以关联到需要的存储容量中(字节、双字),只是准备调用添加到表格指令FC84,而该指令的DATA管脚的数据类型是word类型匹配;另外,因为需要判断输入信号的进来判断,300cpu的比较指令也没有字节数据类型。
2)  调用添加到表格指令FC84,该指令的说明:
A) 该指令仅仅只有除了使能EN和ENO 2个管脚外,DATA数据源的输入,TABLE是表格地址的起始。
B) TABLE起始地址的第一个字指定表格的长度,这个需要编程者大致估算本表格的预计长度,假设计划放入数据9个;第二个字是描述表格已经存放的数量;第三个字才是表格存放的第一个数据值。
如果连续存放数据,那么,不需要很长时间,表格就会马上存放满了,这显然不是我们想要看到的局面。清空表格的方法应该会有几种方式,方法自己想,很方便的,这里先买一个关子,程序在下面。
程序:
1)  创建一个空项目,315-2pn/dp(步骤不具体描述)。
2)  创建一个数据块DB1,并创建需要的数据地址、数据类型与指令一致。因为FC84指令第一个word是指定表格长度,创建时直接赋值部分长度:
6367302652770196416812625.JPG


3)  编辑将输入IW0的一个字信息输入表格程序:
6367302658095094178144450.JPG


4)  启动模拟仿真,验证程序运行:将I0.0信息存放到第一条信息DB1.DBW4中,将输入I0.0 = 1,这时,DB1.DBW2 = 1(表格有一个数据输入) ,DB1.DBW4 = 256(高位低字方式排序)
6367302661493466424763175.JPG


5)  再将I1.0 = 1输入到表格,运行结果:
6367302672485442875081651.JPG


6)  如果,在一个周期中有2个输入的状态,结果:因为在沿指令下一个周期需要有2个输入地址,创建一个变量表,试着将I0.1/I1.1同时写入。一时手抖变量表鼠标点击了2次,存放数据变为第5个数据了。
6367302676847859113320635.JPG


数据能够“记录”。
7)  清空表格的方式:
6367302678129084516138763.JPG


8)  如何区分2个及以上的输入在同一个周期中的先后顺序?虽然这个概率在实际应用中并不多见。图示是仿真的周期时间,实际运行应用程序时会有差异:
6367302679505620583500639.JPG


    这个问题需要一定的空间讨论了,因为,plc的扫描周期是自左到右,自上而下进行的,在同一个周期内还需要看具体程序段落中IW0的调用程序位置情况,我想只能用外部中断事件来单独处理该模式下的状态记录了,但300、400plc没有现成的外部沿输入中断组织块,可以考虑在循环中断组织块中定义?假设定义循环中断组织块OB35为1mS,那么,把上述程序放到OB35组织块中编写,即每1mS时间内扑捉一次外部输入状态,一旦有状态改变就记录,程序就不列举、仿真了。
本文转载自:西门子工业技术论坛

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-3-29 02:24

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表