[西门子] [求助]4台电机先开先关问题

[复制链接]
查看1510 | 回复9 | 2009-6-4 18:19:00 | 显示全部楼层 |阅读模式
要怎么实现4台电机根据要开和要关检测达到先开先关以及先关的先开 我想用堆栈,或者是循环移位或字移位但都遇到了些问题。。高手们帮忙看下
chuangzuojia | 2009-6-4 20:08:00 | 显示全部楼层
你是据什么要求来决定电机的先后开关,是电流还是负载特性。说详细一点。
wzzncsn | 2009-6-4 20:14:00 | 显示全部楼层
就是比如压力不够就需多开一台电机,超了就减少一台电机,然后按先开的先关和关的比较久的先开
loveplc | 2009-6-4 23:01:00 | 显示全部楼层

每个电机都要制定两个量,关机时间和开机时间

这样就有两组数据,即关机时间组和开机时间组,再分别找出关机时间最大值和开机时间最大值,每隔十分钟,做这样一次计算。

如果堆栈反而不太方便!

wzzncsn | 2009-6-5 07:35:00 | 显示全部楼层
主要我是感觉用时间的话还得考虑超过3276.7秒话每台电机还得加计数器。。到时候数据比较的时候就不好比较了
wzzncsn | 2009-6-5 07:41:00 | 显示全部楼层
我的想法是把Y3Y2Y1Y0的逻辑值看成一组数如(0001)当要多开的时候就把现在的值加上本身在加1(例0001→0011,0011→0111等)当要减少一台的时候把当前值减去1并且ROR(例如:Y3Y2Y1Y0 0011→Y0Y3Y2Y1 0001)。。。。但这样要怎么实现我没搞明白。。
loveplc | 2009-6-5 08:52:00 | 显示全部楼层
你可以用移位指令,左移或右移,来实现,具体你要看看指令手册
还有一种方法很通用,就是乘2,除2,在二进制运算中,这也意味着左移或右移。你的这种情况,左移时乘2加1就可以了,右移就无所谓了。
wzzncsn | 2009-6-5 09:00:00 | 显示全部楼层
以下是引用loveplc在2009-6-5 8:52:00的发言:
你可以用移位指令,左移或右移,来实现,具体你要看看指令手册
还有一种方法很通用,就是乘2,除2,在二进制运算中,这也意味着左移或右移。你的这种情况,左移时乘2加1就可以了,右移就无所谓了。

我是想用移位,可是是自己看的书有些细节不是很了解。像移位完只是下面的数据移位了,Y3Y2Y1Y0怎么跟着变成Y0Y3Y2Y1与数据移位对应。。没想明白,而且移位指令用的是8位的而这边是4位的。。怎么解决,加中间变量?。。。

wzzncsn | 2009-6-6 08:10:00 | 显示全部楼层

。。。。。。。。(有人M我说可能不懂题目。。。)不是吧。。那我重写下:
当用水量少,压力增高,K3接通,此时可撤除1台水泵工作,要求先工作的水泵先切断;当用水量多时,压力降低,K1接通,此时可增设1台水泵工作,要求未曾工作过的水泵增加投入运行

现在应该看的懂了吧?

wzzncsn | 2009-6-7 12:45:00 | 显示全部楼层

昨天直接给每台电机加计时器和计数器并通过比较程序能得出第Z台电机应该启动。可是想直接用Y0Z0来启动第Z0台电机,又没办法实现

想启动第Z台电机有什么好方法没?(除了用Z0跟常数K比较)

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则