用普通指令编写西门子S7-1200PLC的循环程序

   2024-09-15 建材之家380
核心提示:循环程序用来完成大量的重复的操作。西门子S7-1200PLC没有像西门子S7-300PLC的LOOP那样的循环程序专用的指令,为了编写循环程序,可以用FieldRead指令实现间接寻址,用普通指令来编写循环程序。 生成一个名为“循环程序”的项目。首先生成全局数据块DB1,在DB1中生成有10个字节元素的数组,设置各数组元素的初始值。 生成一个功能块FB1,定义它的输入参数

    循环程序用来完成大量的重复的操作。西门子S7-1200PLC没有像西门子S7-300PLC的LOOP那样的循环程序专用的指令,为了编写循环程序,可以用FieldRead指令实现间接寻址,用普通指令来编写循环程序。
    生成一个名为“循环程序”的项目。首先生成全局数据块DB1,在DB1中生成有10个字节元素的数组,设置各数组元素的初始值。
    生成一个功能块FB1,定义它的输入参数“字节数”(Int)、“初始下标”(Dint)、“数组”(Array)和输出参数“异或结果”(Byte)。
    在FB1的程序段1用MOVE指令将“异或结果”清零(见图1)。
    程序段2的跳转标签Back表示循环的开始。指令FieldRead用来实现间接寻址,其参数INDEX是要读写的数组元素的下标,其数据类型为DInt(双整数)。参数MEMBER的实参必须是该数组的第一个元素,参数VALUE是读取的数组元素的值。
读取数组元素值后,将它与输出变量“异或结果”作异或运算,将地址指针“起始下标”加1,它指向下一个数组元素。将作为循环次数计数器的输入变量“字节数”减1。减1后如果非0则返回标签Back处,开始下一次循环的操作。

 800)this.width=800">

    图1

    在OB1中调用FB1(见图2),求DB1中的数组1从下标为2的元素开始的3个数组元素的异或值,异或的结果用MB4保存。
    将程序下载到CPU,将CPU切换到RUN模式。搬动I0.2对应的小开关,在I0.2的上升沿调用FB1。用监视表监视MB4中的运算结果,验证了程序的正确性。

800)this.width=800">

图2

 
【温馨提示】本文内容和观点为作者所有,本站只提供信息存储空间服务,如有涉嫌抄袭/侵权/违规内容请联系QQ:727533600 删除!
 
举报收藏 0打赏 0评论 0

上一篇:CPU扫描周期监视时间和程序扫描时间

如图,程序循环执行500次,想请问下这样需要多长时间?CPU的扫描周期时间是150ms,有可能超出CPU的监控时间而报故障嘛?CPU扫描一个network1的时间是多少?用的是CPU 315-2DP。答:1、程序循环执行500次,想请问下这样需要多长时间?如果CPU的扫描周期时间是150ms,程序循环执行500次,则是150ms X 500的关系。2、有可能...

下一篇:西门子S7-300PLC硬件诊断如何操作

问:我西门子S7-300PLC报故障,请帮我讲解一下硬件故障诊断的操作步骤答:"可以利用CPU诊断缓冲区进行详细故障诊断,方法如下:首先建立电脑与PLC的总线连接,在SIMATIC管理器中选择要检查的站(如SIMATIC-300(1)),执行菜单PLC/Diagnosis/Setting(诊断/设定)/Module Information(模块信息),在模块信息窗口的“D...
 
更多>同类电工资讯
推荐图文
推荐电工资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报