spw605
西门子plcs7-200编程当vw2中的数据变化时(或加1时)输出一个动作信号。
论坛大神应该很多,求知道的教下。。。。。
是这样的,就是比如vw2中是读写时间程序中的月份,当过了一个月vw2数据会加1,就是意思每过一个月时给一个动作信号。有没有知道怎么写程序呀???????
miy_gongkong
你的问题貌似有点歧义,
你本身问题的定义应该是: 当 VW200 这个变量值 发生变化时,输出一个动作。
其实你可以这样做: 首先把 VW200 设置为掉电保持区域内,其次做一个定时器循环采集 子程序,当这一次的值,和上一次采集的值不同时候,输出一个动作。 定时器时间根据 工艺来设定。
wyb2866255---王者之师
1、在S7-200有时钟指令,你可先设置时钟:把现在时间和日期写在8个字节存储区(如起始地址为VB10,VB10~VB17),当时间正好等于设定值时,按钮使I0.0=1,其前沿将VB10~VB17值装入时钟。
2、再用读实时时钟送入起始地址为VB20的8个字节存储器,其VB22的内容即为一个月的日期值(1、2、。。31),用字节比较指令将VB22与数字“1”比较,用相等时的前沿将VW2加1.见下梯形图:
回复内容:
对: wyb2866255---王者之师 1、在S7-200有时钟指令,你可先设置时钟:把现... 内容的回复!
大神,你发下梯形图!
大神还有个问题!那个vb22是日 ,但我发现怎么值是0 只有秒有数据
对: spw605 回复内容:对: wyb2866255---王者之师 ... 内容的回复!
还有那个vb22要转换吧!先B-I转换 再BCD转I ,比如转换到vw32,vw32值就一直为0 我现在有cpu226在实验
转换后才是1、2、3、、、、、、31,我刚才说错了转换完后,vw32是有显示值,但我查看状态表监控的时候vw32为0,秒有变化
我懂了,vb22是有值得,转换vw32值是不能用的(虽然vw32更直观显示1到31),如果只用1号,vb22和vw32都是1,所以你程序是可以用的,谢谢了哈!但能告诉我vw32为什么不能用吗?
回楼主:读取实时时钟送入VB20~27这8个字节存储器,只有秒存储器的值是可以看到它的数值变化(每隔1秒数值加1),而 年、月、日、时、分不是按秒的变化而变动的,比如:VB22为“日”存储器,它是每过一天才变换一次。
用VB22与1比较,既是每月的1号时将VW2数值加1,即可实现每过一个月,VW2存储器加1。选用数字1,就是简化运算:VB22可以不做数制转换,直接比较就可以了。
王者之师-苦学
学习了 学习喽
第一个周期时将VW2中的数据保存到VW4中;
然后在程序开头处比较VW2和VW4的值(当然第一个周期两者是相等的),如果不等就执行你的功能,否则什么都不做;
其次,在程序的最后将VW2中的数据再次保存到VW4中即可;
当然这里的VW4可以用其他的字数据空间,如MW4等
阿水--王者之师
WYB 2866255 大神,顶你啦,200 的 时间读取好资料,学习了!
邵-王者之师
额,从题目来看是不是单纯得想VW2数据变化就有信号输出是吧?很简单啊,比较、异或都可以啊~