评比算分,去掉最高分和最低分算平均,PLC怎样编程实现?
在很多比赛中为了体现公平与公正,避免个别明显过高或过低的评分影响选手的成绩,一般都会设置诸如“去掉1个最低分和1个最高分”这样的规则,那么这个算法PLC编程怎样来实现呢?
原理很简单就是找出最大值和最小值,假设10个评分值分成存在D100,D101,D102,D103,D104,D105,D106,D107,D108,D109共10个地址里。
用指令找出最大和最小值,求和算平均即可。
程序如下:
之前的文章也介绍过怎样找最大最小值,怎样求和,这次我们结合起来就可以了。
下面的MAX D100 D0 K10指令就是从D100,D101.。。D109共10个数中找出最大值存到D0中
MIN D100 D2 K10是从D100开始的10个地址中找出最小数存入D2
WSUM是求和,把D100—D109共10个数相加存入D12中
求和(10个数)完成减去最大值,再减去最小值除以8就是平均值了,比赛评分一般都是这样计算的。
下面看动态图演示
GIF动图耐心等待
这样高效学PLC编程,掌握ST语言运算符号编写控制程序无压力
此次为大伙续上之前《 ST语言运算符上 》所讲解的内容,如果大伙没有了解过之前分享的内容,建议先行去了解再往下看,便于全面的掌握ST语言运算符。
五:* (乘) / (除) MOD (余数)
除法 MOD(余数)
在ST语言使用运算符 / 表示除法。在运算中,自动根据自定义的标签自动进行整数运算或小数运算,如果直接使用软元件名使用,默认为16位整数运算,如下图所示:
梯形图的除法运算,会存在16位整数除以16位整数结果是32位整数,其中低16位储存商数,高16位储存余数,在ST语言中是以运算符 / 求商数,使用运算符号MOD 进行求余数,求商数与余数是使用二个运算符进行运算。
例:求出D0除以D2的商数,结果储存至D4,求出D0除以及D2的商数,结果储存至D6
同样在四则运算中需要注意数据类型是否一致,否则编译不通过
在程序文直接使用软元件,那么编译器默认为是16位整数,如果需要使用32位整数运算,需要在全局标签进行定义,然后在程序文使用标签进行运算。
例:在全局标签定义三个32位整数变量,分别命名为整数32位1,整数32位2,整数32位3,地址分配为D200,D202,D204,然后在程序中将,整数32位1乘以整数32位2,结果赋值给整数32位3,步骤如下图所示
32位整数除法在GX Works3 比较方便,不需要在全局标签中设置小数类型,可以直接在程序文中直接使用软元件,参考下图所示
在软元件名称加上冒号然后输入数据类型,具体定义如下图所示
在ST语言中四则运算中的乘法,除法与求余数的优先权是同等级,理论上是不分先后执行,实际上在左边优先执行,右边后执行。
例:在下图所示中,D2先乘以D4,然后再除于D6,最后进行赋值。
六:+ (加) - (减)
在梯形图中的加法与减法使用ADD(加法)与SUB(减法)表示,如果是小数则为EADD,ESUB
在ST语言使用运算符 + 代表加法,运算符 – 代表减法。
例:将D0加上D2值再减去D4,结果储存致D6中。
理论上加法与减法的优先权是同等级,也就是说执行运算不分先后,实际是在左边执行,右边后执行,如上图所示,D0先加上D2,然后再减去D4,这是顺序因素,不是优先权运算原则。
默认使用软元件就是使用16位整数,如果想要使用32位整数或小数参考上图所示方法。
七:<,>,<=,>= (比较)
在比较关系符,分别有小于“<”关系,大于“>”关系,小于或等于“<=”关系,大于或等于“>=”关系。
比较关系符为常用运算符,熟悉掌握关系符应用对ST语言编写很大帮助!
如:关系符运符可以用在控制语句中使用,如IF判断。
如:关系符运符也可以作为执行函数条件使用,如果传送指令执行条件
如:关系符运符可以将比较结果进行赋值输出
如:可以直接将四则运算的结果进行判断,然后再输出
注意:比较结果不能进行四则运算
七:= , <> (等式/不等式)
等式“=”与不等式“<>”的优先权低于比较关系,等式与不等式是同级别,不分先后。
使用方法参考比较关系例子,这里就不在介绍。
注意:等式运算符与赋值运算符容易混淆,等式“=”是用来比较使用,赋值是给赋值“:=”使用
八:AND , & ( 逻辑与 )
逻辑关系,在梯形图中多个位的逻辑关系,可以很方便观察到各个位的状态,特别是在调试程序时,可以快速排查问题
在ST语言中的逻辑与是使用AND或 & 运算符表示,上图与下图程序作用完全一样。
可以看出,梯形图的逻辑关系比较直观,而ST语言就稍微差点。所以在逻辑控制方面使用梯形图编程比较有优势,而四则运算方面使用ST语言比较方便
注意:在梯形图有专用的常闭符号,而ST语言没有专用符号,如果在ST语言使用常闭信号进行逻辑运算,可以使用NOT 取反运算符,如图所示
八:XOR ( 逻辑异或 )
逻辑异或关系,用来表示二个位的关系,梯形图中的表达二个位为异或关系,使用四个触点,如下图所示:
ST语言使用XOR运算符表示,则可以实现如上图所示作用
异或运算符的优先权低于逻辑与运算运算符,如下图
九:OR ( 逻辑或 )
逻辑或关系,用来表示二个位为或关系,梯形图中的表达二个位为或关系如下图所示:
ST语言使用OR运算符表示,则可以实现如上图所示作用
或运算符的优先权为最低,是所有运算符中最低一个
以上,欢迎动动手分享及收藏!
相关问答
plc怎么实现优先级?
PLC可以通过设置不同的触发条件和时间延迟来实现优先级控制。例如,可以将紧急停机按钮设置为最高优先级触发条件,确保在任何情况下都能立即停机。同时,设定一...
plc最低输出多少频率?
不同的PLC输出频率是不一样的,例如:三菱的FX1S、FX1N是100K,FX10GM、FX20GM好象是200K,松下的FP-SIGMA是100K,永宏的FBN可达512K。以上的数据是理想状态(温...
plc最少创建多少变量?
创建多少变量没有限制,根据需要创建即可创建多少变量没有限制,根据需要创建即可
plc通讯协议标准?
PLC支持的几种通讯协议。一、PPI通讯是西门子公司专为s7-200系列plc开发的通讯协议。内置于S7-200CPU中。PPI协议物理上基于RS-485口,通过屏蔽双绞线就可以...
信捷plc编程软件为什么运行不了W7系统能打开吗怎么处理-Z...
安装完以后再下载一下载中心软件下载的第二个编程软件(目前最高版本),还有安装...最低系统要求,如果不达标可能需要升级硬件或更换操作系统信捷PLC编程软件在Wi...
plc电池电压最低多少V就要更换新的电池啊?
PLC存储用的锂电池,电压低于3V就要更换电池了。当PLC的用户程序要保留在RAM中时,就会用到电池,电池通常是3V或3.6V的不可充电的锂电池,电池的使用寿命通常是...
nplc怎么选?
当选择nplc时,应考虑电流测量的精度和速度之间的平衡。如果需要较高的精度,则应选择较低的nplc值。如果需要更快的测量速度,则应选择较高的nplc值。另外,还...
问一下:西门子plc编程设计西门子smartS7通信问题应该怎样解...
[回答]西门子plc编程设计在西门子S7-200PLC上有两个端口哪两个端口名称叫:RS485接口,串口西门子plc编程设计GET/PUT指令TABLE参数表的首一个字节提供了“...
在线的各位知道吗,西门子plc编程设计200smartS7通信问题应...
[回答]西门子plc编程设计虽然S7-200SMARTCPU以太网端口具有25个连接资源,但是其中只有1个连接资源(PG连接资源)用于与STEP7-Micro/WINSMART软件的通信。如...
各位师兄,请问下现在有没有再没有硬件的情况下进行PLC和触摸屏的模拟!需要什么软件?
好象没有那种软件。要模拟两个最少得有个PLC,用PC连接PLC的编程口和通信口,再运行触摸屏程序进行在线模拟就可以了。好象没有那种软件。要模拟两个最少得有...