您现在所在的是:

西门子SIEMENS

回帖:1个,阅读:673 [上一页] [1] [下一页]
* 帖子主题:

s7-1200循环程序

1434
yuanqijun88
文章数:44
年度积分:50
历史总积分:1434
注册时间:2010/11/24
发站内信
发表于:2014/9/5 17:35:31
#0楼
循环程序用来完成大量的重复的操作。S7-1200没有像S7-300的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处,开始下一次循环的操作。




  图1

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



图2 
1434
yuanqijun88
文章数:44
年度积分:50
历史总积分:1434
注册时间:2010/11/24
发站内信
发表于:2014/9/5 17:37:09
#1楼
按照廖教授上面所写的编写一实例程序时:XOR异或指令 IN2:(异或结果)和OUT(异或结果)不对头呀!只能用INOUT(异或结果)请问一下大家是怎么回事。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

31.2002