技术论坛

写了一个程序,就是把取5个数值的最大值

作者 主题
游士

经验值: 157
发帖数: 23
精华帖: 0
主题:【求助】写了一个程序,就是把取5个数值的最大值
推荐帖


只看楼主 楼主 2019-04-30 20:01:35
研究一个由五台电机的启动程序,启动电路已经弄懂,但是一个停止程序就不知道了,启动电机并记录运行时间,停止的时候,谁运行的时间长先停机谁,,用比较指令,1号电机分别对应2 3 4 5号比较,然后2号在分别对应别的比较,感觉这样做不行,哪位老师给指点下,
 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1557995&b_id=3&s_id=0&num=9

游士

经验值: 169
发帖数: 27
精华帖: 0
回复:写了一个程序,就是把取5个数值的最大值
推荐帖


只看楼主 1楼 2019-04-30 21:19:52
可以按照设置序号进行停止,最先启动电机用传送指令给1,第二启动电机用传送指令给2,依次给电机3、4、5实际数值,用实际数值记录启动顺序,停止就先1,之后2、3、4、5。
 
以下网友喜欢您的帖子:

  
至圣

经验值: 67543
发帖数: 14782
精华帖: 100
回复:写了一个程序,就是把取5个数值的最大值
推荐帖


只看楼主 2楼 2019-05-03 08:24:59

楼主,比较完之后,没说什么了?

你看啊,1和2345比,2和345比,3和45比,4和5比,一共比较了4321次,10次,(假设你的程序没错)现在换个方式,12比,23比,34比,45比,每次比都选择性调位,把较大值放后面。经过这么一比,4次,最大值就出现在第五位了。

在v区建立一个表单:

vw0 1 vw2时间1

vw4 2 vw6 时间2

vw8 ...

vw12...

vw16...

比较的话只比较时间,而调位的话连编号连时间一齐调。那么,第五位就可以知道编号和时间。



 
以下网友喜欢您的帖子:

  
至圣

经验值: 67543
发帖数: 14782
精华帖: 100
回复:写了一个程序,就是把取5个数值的最大值


只看楼主 3楼 2019-05-03 21:41:10

停机还有什么问题?

知道3号时间最大,还停不了3号?


 
以下网友喜欢您的帖子:

  
侠客

经验值: 986
发帖数: 91
精华帖: 1
回复:写了一个程序,就是把取5个数值的最大值


只看楼主 4楼 2019-06-01 10:05:03

1-5运行时间分别存到VW0-VW8中。VW0>VW2,VW0>VW4,VW0>VW6,VW0>VW8,则M0.1得电;

                    VW2>VW0,VW2>VW4,VW2>VW6,VW2>VW8,则M0.2得电;

                    VW4>VW0,VW4>VW2,VW4>VW6,VW4>VW8,则M0.3得电;

                    VW6>VW0,VW6>VW2,VW6>VW4,VW6>VW8,则M0.4得电;

                    VW8>VW0,VW8>VW2,VW8>VW4,VW8>VW6,则M0.5得电;

M0.1-M0.5哪个得电先停哪个

                    


 
以下网友喜欢您的帖子:

  
版主

经验值: 25993
发帖数: 11808
精华帖: 43
回复:写了一个程序,就是把取5个数值的最大值


只看楼主 5楼 2019-06-03 23:19:52
如果把PLC当成继电器来编程,的确有点难办。
如果把PLC当成小电脑来编程,就容易多了。
 
以下网友喜欢您的帖子:

  
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
回复:写了一个程序,就是把取5个数值的最大值


只看楼主 6楼 2019-06-04 10:16:10

呃,这个就是最最最简单的算法,查找最大值而已。

百度一下最大值算法,就有一大堆。根本就不用什么排序!!!因为你只需要找到最大的那个停掉。

其实,这种多电机运行时间平衡逻辑,根本就不用计算运行时间的,只需要记录开机顺序,停机时判断哪个电机正在运行且开机顺序最小的就停它准没错!

用运行时间累计来做电机磨损平衡来做是非常不好的一种控制逻辑。先不说每个计时周期浪费大量的CPU时间去做运行时间累计浪费资源,还有就是当某台电机一直有过流问题时它的运行累计时间永远是最小的,那么每次轮换时间周期都是先开它导致它经常频繁短时间启动后过流报警设备整体工作在很不健康状态,还不如按顺序轮换避免每个轮换周期都去折腾那个矮个子更健康。


 
以下网友喜欢您的帖子:

  
版主

经验值: 25993
发帖数: 11808
精华帖: 43
回复:写了一个程序,就是把取5个数值的最大值


只看楼主 7楼 2019-06-08 13:56:01
这么简单的启停逻辑,只可供学习讨论,真正用于实际,需考虑的因素不仅仅限启停时间。
 
以下网友喜欢您的帖子:

  
游民

经验值: 61
发帖数: 5
精华帖: 0
回复:写了一个程序,就是把取5个数值的最大值


只看楼主 8楼 2020-01-22 15:25:16
这不就是先开先停吗
 
以下网友喜欢您的帖子:

  
奇侠

经验值: 6543
发帖数: 767
精华帖: 3
回复:写了一个程序,就是把取5个数值的最大值


只看楼主 9楼 2020-01-23 09:42:40
以下是引用西曼在2019-06-01 10:05:03的发言 >4楼

1-5运行时间分别存到VW0-VW8中。VW0>VW2,VW0>VW4,VW0>VW6,VW0>VW8,则M0.1得电;

                    VW2>VW0,VW2>VW4,VW2>VW6,VW2>VW8,则M0.2得电;

                    VW4>VW0,VW4>VW2,VW4>VW6,VW4>VW8,则M0.3得电;

                    VW6>VW0,VW6>VW2,VW6>VW4,VW6>VW8,则M0.4得电;

                    VW8>VW0,VW8>VW2,VW8>VW4,VW8>VW6,则M0.5得电;

M0.1-M0.5哪个得电先停哪个

                    

应该比较前面再加个当前电机正在运行的条件,如果电机已经停止就不参加比较了


万物皆有用.用坚强的毅力把机遇变成成功!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
写了一个程序,就是把取5个数值的最大值
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。