关于西门子plcs7-200编程的一个小问题 点击:1054 | 回复:13



spw605

    
  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 15回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2014年2月18日
发表于:2014-03-30 21:39:29
楼主

西门子plcs7-200编程当vw2中的数据变化时(或加1时)输出一个动作信号。

论坛大神应该很多,求知道的教下。。。。。




spw605

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 15回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2014年2月18日
发表于:2014-03-30 21:50:11
1楼

是这样的,就是比如vw2中是读写时间程序中的月份,当过了一个月vw2数据会加1,就是意思每过一个月时给一个动作信号。有没有知道怎么写程序呀???????

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2014-03-30 23:10:14
2楼

你的问题貌似有点歧义,


你本身问题的定义应该是: 当 VW200 这个变量值 发生变化时,输出一个动作。


其实你可以这样做: 首先把 VW200 设置为掉电保持区域内,其次做一个定时器循环采集 子程序,当这一次的值,和上一次采集的值不同时候,输出一个动作。 定时器时间根据 工艺来设定。

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2014-03-30 23:11:47
3楼

 1、在S7-200有时钟指令,你可先设置时钟:把现在时间和日期写在8个字节存储区(如起始地址为VB10,VB10~VB17),当时间正好等于设定值时,按钮使I0.0=1,其前沿将VB10~VB17值装入时钟。

 2、再用读实时时钟送入起始地址为VB20的8个字节存储器,其VB22的内容即为一个月的日期值(1、2、。。31),用字节比较指令将VB22与数字“1”比较,用相等时的前沿将VW2加1.见下梯形图:


spw605

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 15回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2014年2月18日
发表于:2014-03-30 23:33:22
4楼

回复内容:

对: wyb2866255---王者之师   1、在S7-200有时钟指令,你可先设置时钟:把现... 内容的回复!


大神,你发下梯形图!


spw605

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 15回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2014年2月18日
发表于:2014-03-30 23:40:31
5楼

回复内容:

对: wyb2866255---王者之师   1、在S7-200有时钟指令,你可先设置时钟:把现... 内容的回复!

大神还有个问题!那个vb22是日 ,但我发现怎么值是0 只有秒有数据

spw605

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 15回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2014年2月18日
发表于:2014-03-30 23:44:58
6楼

回复内容:

对: spw605 回复内容:对: wyb2866255---王者之师  ... 内容的回复!


还有那个vb22要转换吧!先B-I转换 再BCD转I ,比如转换到vw32,vw32值就一直为0 我现在有cpu226在实验

spw605

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 15回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2014年2月18日
发表于:2014-03-30 23:49:11
7楼

回复内容:

对: wyb2866255---王者之师   1、在S7-200有时钟指令,你可先设置时钟:把现... 内容的回复!


转换后才是1、2、3、、、、、、31,我刚才说错了转换完后,vw32是有显示值,但我查看状态表监控的时候vw32为0,秒有变化

spw605

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 15回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2014年2月18日
发表于:2014-03-31 00:09:23
8楼

我懂了,vb22是有值得,转换vw32值是不能用的(虽然vw32更直观显示1到31),如果只用1号,vb22和vw32都是1,所以你程序是可以用的,谢谢了哈!但能告诉我vw32为什么不能用吗?

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2014-03-31 00:12:56
9楼

  回楼主:读取实时时钟送入VB20~27这8个字节存储器,只有秒存储器的值是可以看到它的数值变化(每隔1秒数值加1),而 年、月、日、时、分不是按秒的变化而变动的,比如:VB22为“日”存储器,它是每过一天才变换一次。

  用VB22与1比较,既是每月的1号时将VW2数值加1,即可实现每过一个月,VW2存储器加1。选用数字1,就是简化运算:VB22可以不做数制转换,直接比较就可以了。

王者之师-苦学

  • 精华:0帖
  • 求助:0帖
  • 帖子:28帖 | 1034回
  • 年度积分:2
  • 历史总积分:2430
  • 注册:2005年3月13日
发表于:2014-03-31 01:28:41
10楼

学习了 学习喽                      

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:1000
  • 注册:2008年1月09日
发表于:2014-03-31 11:42:05
11楼

第一个周期时将VW2中的数据保存到VW4中;

然后在程序开头处比较VW2和VW4的值(当然第一个周期两者是相等的),如果不等就执行你的功能,否则什么都不做;

其次,在程序的最后将VW2中的数据再次保存到VW4中即可;

当然这里的VW4可以用其他的字数据空间,如MW4等

阿水--王者之师

  • 精华:25帖
  • 求助:348帖
  • 帖子:1617帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2014-03-31 11:44:11
12楼

  WYB 2866255 大神,顶你啦,200 的 时间读取好资料,学习了!  

邵-王者之师

  • 精华:1帖
  • 求助:39帖
  • 帖子:81帖 | 861回
  • 年度积分:0
  • 历史总积分:2844
  • 注册:2011年3月24日
发表于:2014-04-01 22:21:57
13楼

额,从题目来看是不是单纯得想VW2数据变化就有信号输出是吧?很简单啊,比较、异或都可以啊~


热门招聘
相关主题

官方公众号

智造工程师