一个最简单的FC,只有一个输入IN1和一个输出OUT1,程序也只写一行,就是用IN1的常开加上OUT1的常开与OUT1的线圈组成自保持电路,然后在OB1中调用两次此FC,发现一个问题:如果OUT1使用的是M或Q地址,两个FC并无冲突,但是如果OUT1采用DB地址,比如一个是DB1.DBX0.0,另一个是DB1.DBX0.1,此时会出现问题:只要任何一个FC的输入IN1接通,两个输出都会置1(将自保持电路换成SET指令也是同样的结果),不知道这是什么原因?望高人指点。
问题补充:
还是不是很清楚:如果只是形式参数的定义问题,为什么M和Q地址不会出现此问题,如果是掉电保持的原因,那么掉电保持区里默认MB0~MB15是掉电保持起什么作用?
产品版区:SIMATIC S7-300(F)/S7-400(F/H/FH)
悬赏分:5 | 解决时间:2010-06-30 09:51:03 | 提问者: zengzy - 中级工程师  第10级
最佳答案
这里讨论过这个问题,
http://www.ad.siemens.com.cn/club/bbs/post.asp?myreply=1&b_id=4&a_id=605538&s_id=&num=38#anch
http://ad.siemens.com.cn/club/bbs/post.asp?myreply=&b_id=4&a_id=672080&s_id=&num=#anch
回答者:
kxo
-
中级工程师  第10级
2010-06-28 21:07:26
提问者对于答案的评价:
看了两个帖子有些收获,不过还是没明白M,Q地址和DB地址在应用中的区别
1 。 一般而言,M, Q 数据区的地址是掉电不保持的。因此不会出现上述现象。
2 。 DB 数据块的字 DB1.DBW0 , 字节 DB1.DBB0 , 位 DB1.DBX0.0
等等是带保持的。所以出现上述情况。
回答者: yuxh22 - 中级工程师  第10级
2010-06-28 14:52:32
将out1的类型改成in_out就行了
回答者: sailing - 毕业实践员  第4级
2010-06-28 15:10:31
这个问题涉及到了FC的形式参数的定义问题,单定义为out类型的形式参数在程序中被用作IN管脚时,扫描的结果会是一个随机值而不是你所认为的结果,需要特别注意,在帮助文件中也讲到这点,S5的FC没有这个限制,做S5到S7升级时fc特别要注意。避免方法可以将OUT类型的参数定义为in_out即可
回答者: lk168 - 毕业实践员  第4级
2010-06-28 15:26:28
做个记号,学习了。。
回答者: 炸酱面 - 毕业实践员  第4级
2010-06-28 15:44:26
我也刚好碰到这方面的问题,学习啦!!
回答者: Lily力 - 学长  第2级
2010-06-28 16:12:41
明白了。
回答者: yanjiuximenzi - 中级技术员  第6级
2010-06-28 18:03:10
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!