找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
1、数据定义
原始电机编号 1、2、3、4、5、6;存储在 VB0、VB1、VB2、VB3、VB4、VB5
原始电机运行时间按分钟计数,存储在 VD6 VD10 VD14 VD18 VD22 VD26
按时间排序后的电机编号存储在 VB30、VB31、VB32、VB33、VB34、VB35
按时间排序后的时间,存储在 VD36 VD40 VD44 VD48 VD52 VD56
引入两个指针变量 VD60 VD64 用于排序时间;
引入两个循环变量 VW66 VW68 用于排序时间;
留一定的V存储区用于在程序中还要增加的变量定义。
2、电机号按运行时间排序,排序按从小到大排序的思路:
2.1 将 VB0-VB5 复制到 VB30-VB35
2.2 将 VD6-VD26 复制到 VD36-VD56
2.3 两重循环结构排序时间
记住一点就是,判断大小,只要交换数据,电机号要交换,同样时间要交换。
用循环结构较好,这里略去。
排完序后,跃然时间是在 VD36-VD56 上排序的。那VB30 中存储的就时运行最小时间的电机的电机号,VB35中存储的就是运行时间最长的电机号。
当需要增加电机时:
就从 VB30 到 VB35 探查,这个泵是不是处于运行状态,是不是处于故障状态,手自动开关是不是在自动状态等。比如这个电机没有运行也没有故障并且在自动状态,那就启动这个电机。
减电机时反向探查。
故障时就增一台,按增的探查方式。
3、用循环+间接寻址的方式做起来要好做一些。
S7-200 SMART 间接寻址
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/programming/indirect_addressing.html
FOR_NEXT循环指令及例程
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/programming/F0R_NEXT/FOR_Next.html
补充:
6个连续的字节存储电机编号,比如,VB100 存储1 VB200 存储2 依此类推。
排序时间时,只要时间数据交换,电机编号所在的单元也交换,这样就有对应关系。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城