0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

电机运行时间进行排列 是分为两个部分来完成这个程序的设计的

aYPB_plc 来源:陈年丽 2019-07-19 08:57 次阅读

前几天有个学员咨询一个程序设计的问题,程序的控制要求如下:需要控制5台电机的运行,每台电机运行时需要记录运行时间,电机启动运行时,根据记录的运行时间,从小到大,每个2s依次启动电机的运行。

我想对于这个程序的控制要求来讲,他的难点在于如何对这些电机运行时间进行排列,排列好了后,如何根据排列的顺序去起动电机的运行,从这个控制要求中我们可以看出,这主要是分为两个部分来完成这个程序的设计的:

第一部分、用于对电机的运行时间进行从小到大顺序的排列

第二部分、根据排列好的数据,如何判断需要起动那一台电机

前几天有个学员咨询一个程序设计的问题,程序的控制要求如下:需要控制5台电机的运行,每台电机运行时需要记录运行时间,电机启动运行时,根据记录的运行时间,从小到大,每个2s依次启动电机的运行。

我想对于这个程序的控制要求来讲,他的难点在于如何对这些电机运行时间进行排列,排列好了后,如何根据排列的顺序去起动电机的运行,从这个控制要求中我们可以看出,这主要是分为两个部分来完成这个程序的设计的:

第一部分、用于对电机的运行时间进行从小到大顺序的排列

第二部分、根据排列好的数据,如何判断需要起动那一台电机

这里我们以西门子S7-200SMART系列PLC为例,先说说,如何编写一个数据排列的带参数的子程序。

数据排列带参数子程序设计思路:

西门子S7-200系列的PLC中不像三菱的FX系列PLC具有数据排列的指令,因此我们要实现这个数据的排列功能,必须自己去搭建一个这样的功能块,在搭建这个功能块的时候,会使用到间接寻址和循环指令,同时还需要应用到带参数的子程序。那么如何编写一个数据排列的子程序呢?

假设有5个数据需要把他们的数据的大小按照顺序从小到大排列,那么我们可以先在这五个数中找到最大的数放在最后面。然后在剩下的四个数中找到最大的数放到倒数第二个的位置,接着在剩下的三个数中找到最大的值放到倒数第三的位置,依次下去,这样当全部比较完后,我们的数据就按照从小到大的顺序排列好了。那么很明显,我们需要用两个循环指令进行嵌套。外层的循环指令需要循环4次,而内层的循环指令的循环次数是会变化的,因为第一次从5个数据中找出最大值,循环4次,第二次的时候从4个数据中找出最大值,循环3次,依次下去,每次需要改变循环的次数。

如何找出最大值呢?我们可以进行比较,首先用第二个数跟第一个数比较,如果第二个数比第一个数大,那么指针往下移动变成第二个数跟第三个数比较,如果第二个数比第三个数大,那么对第二个数和第三个数进行交换,依次下去,当比较完成后,最大的数就放到最后的地址里面去了。

程序设计:

(1)建立变量表

(2)根据变量表,编写数据排列子程序

第二部分的内容:根据排列好的数据,如何判断需要起动那一台电机。

在启动电机时,我们需要把每一台电机运行的时间拿过来与排列好的数据进行比较,看看他是位于我们这个排列好的数据中的的什么位置。然后根据这个位置来判断启动的时候。

设计思路:

在这里面我们会用到两个功能,第一个功能时把我们电机运行的时间,按照编号顺序放到表格中,例如VW20到VW28分别表示电机1到电机5的运行时间,把它放到表格中,而后把我们排列好的数据,拿过来与表格中的数据进行比较(可以使用查表指令),看看最小的值时位于表格中的哪个位置,根据查表指令所查找的位置来启动那条电机,比如查找出来的值时3则表示的就是第三台电机的运行时间最少,可以启动这第三台电机,这里我们需要用到表格指令及间接寻址。

程序:

总结

本程序作为一个框架程序,主要应用到了以下几个内容,间接寻址的时候用,循环指令的应用,带参数子程序的应用,查表指令的使用,希望读者看完后,对自己以后设计程序时思路会有所启发,若有考虑不周之处或更好的方法,望指出,谢谢。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 西门子
    +关注

    关注

    94

    文章

    3034

    浏览量

    115778
  • 电机
    +关注

    关注

    142

    文章

    9000

    浏览量

    145335

原文标题:资深工程师分享:PLC程序设计思路,初学者福利!

文章出处:【微信号:plcfans,微信公众号:PLC发烧友】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何缩短Vivado的运行时间

    在Vivado Implementation阶段,有时是有必要分析一下什么原因导致运行时间(runtime)过长,从而找到一些方法来缩短运行时间
    的头像 发表于 05-29 14:37 1.4w次阅读
    如何缩短Vivado的<b class='flag-5'>运行时间</b>

    获取单片机运行时间

    的开始阶段使单片机的一GPIO输出高电平,在待测程序段的结尾阶段再令这个GPIO输出低电平。用示波器通过检查高电平的时间长度,就知道了这段代码的
    的头像 发表于 08-26 20:26 1851次阅读
    获取单片<b class='flag-5'>机运行时间</b>

    程序运行时间计时小程序

    本帖最后由 sushu 于 2013-3-9 22:40 编辑 看到一帖子[求助] 计算程序运行时间,想要计算指示灯点亮和熄灭的时间,想了想:使用事件结构就可以
    发表于 03-09 22:39

    labview中计算程序运行时间

    可能这个对大家来说不是什么大问题,也有很多人有很多方法来实现程序运行时间的计算,要么两个计时器,要么用到事件结构。我这里用移位寄存器实现。 希望大家不要吐槽,如果大家有更好的,希望共
    发表于 05-23 21:52

    电机参数检测程序运行时间有多长?

    、Flag_Run_Identify;这个使能位控制电机运转,我看是通过PWM的使能来控制,这样是不是立刻停止电机和启动电机,在系统内部有缓慢启动和停止机制吗?四、
    发表于 06-19 13:47

    freertos的任务运行时间怎么设置

    对于相同优先级的任务采用时间片轮询的方式运行,那比如说有两个优先级都为5的任务,那这两个任务的运行时间如何设置呢?在rt-thread中创建
    发表于 07-19 08:03

    电机运行时啸叫、噪音过大是为什么?

    电机运行时啸叫、噪音过大?
    发表于 11-08 08:18

    C语言教程之显示程序运行时间

    C语言教程之显示程序运行时间,很好的C语言资料,快来学习吧。
    发表于 04-25 16:09 0次下载

    如何用SysTick实现测量程序运行时间

    在实际的项目开发过程中,常常遇到需要得到一段代码的运行时间,通常的方法是用示波器来测量,这篇博文将用 SysTick 来实现 精确测量 程序运行时间。 STM32F4 的内核定时
    的头像 发表于 05-09 14:07 6038次阅读
    如何用SysTick实现测量<b class='flag-5'>程序</b><b class='flag-5'>运行时间</b>

    浅析STM32代码运行时间的技巧

    前言     测试代码的运行时间种方法: 使用单片机内部定时器,在待测程序段的开始启动定时器,在待测程序段的结尾关闭定时器。为了测量的准确性,要
    的头像 发表于 11-09 09:52 3872次阅读
    浅析STM32代码<b class='flag-5'>运行时间</b>的技巧

    ch32v307记录程序运行时间

    ch32v307记录程序运行时间程序开发中,很重要的一项任务就是对程序运行时间进行评估。对
    的头像 发表于 08-22 15:53 901次阅读

    变频器带动电机运行时发抖是怎么回事?

    频率,则变频器不输出10-14Hz的频率,直接跳过。带动电机运行时产生抖动的处理方案以三菱变频器带动电机运行时产生抖动分析为例,如下:(一)、机械共振原因:机械共振
    的头像 发表于 10-31 08:07 1391次阅读
    变频器带动<b class='flag-5'>电机运行时</b>发抖是怎么回事?

    西门子SCL编程50台电机运行时间累计方法

    当RUN信号为TRUE时,开始计时,为FALSE时停止计时,单次运行时间清零,长按RESET为5秒时,单次和总运行时间都清零。
    发表于 11-27 09:59 1864次阅读
    西门子SCL编程50台<b class='flag-5'>电机运行时间</b>累计方法

    jvm运行时内存区域划分

    的内存区域划分对于了解Java程序的内存使用非常重要,本文将详细介绍JVM运行时的内存区域划分。 JVM运行时内存区域主要划分为以下几个部分
    的头像 发表于 12-05 14:08 528次阅读

    变频器带动电机运行时发抖的原因及处理方法

    变频器作为现代工业控制领域的重要设备,广泛应用于电机调速控制中。然而,在实际应用中,有时会遇到变频器带动电机运行时产生抖动的问题。这种抖动不仅影响电机的正常运行,还可能对生产效率和设备
    的头像 发表于 05-31 14:43 5635次阅读