s7-300PLC如何找出从一组数据中找出规律的最大和最小值

java 获取一组数据中的最大值和最小值
作者:落叶的博客
字体:[ ] 类型:转载 时间:
本文主要介绍了java 获取一组数据中的最大值和最小值的方法。具有很好的参考价值,下面跟着小编一起来看下吧
话不多说,请看代码:
public static void main(String[] args) {
int array[]={2,4,3,9,1,6,8,5,23};
int max=array[0],min=array[0];
for(int i=0;i&array.i++){
if(array[i]&max){
max=array[i];
for(int i=0;i&array.i++){
if(array[i]&min){
min=array[i];
System.out.println(max);
System.out.println(min);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具【图文】PLC
S7-300实验一步骤_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
S7-300实验一步骤
大小:1.96MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢工控PLC擂台第83期-PLC如何找出一组数据的最大和最小值
给TA发消息
加TA为好友
发表于: 16:27:59 楼主
PLC如何找出一组数据的最大和最小值。写出完成整个功能的PLC模块及外围器件,并附相关程序。 &&&&&&&& PLC品牌不限。 &&&&&&&&& 工控PLC擂台每周一期,本期下周末结贴。奖项设置:一等奖1名:30MP,二等奖5名:10MP,三等奖10名:100积分。 &&&&&&&&&& MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。 &&&&&&& MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。
给TA发消息
加TA为好友 发表于: 15:04:11 1楼
欧姆龙主推系列的PLC都具有表格数据处理指令,我采用CP1H-XA进行举例说明。具有最大值检索指令MAX以及最小值检索指令MIN最大可以对65535个字进行比较取值。最后这组数字里面最大值放在D300里,最小值放在D400里面。
给TA发消息
加TA为好友 发表于: 13:42:41 2楼
采用矩形PLC的实现方式如下(适用于矩形N80、V80、PPC11全系列PLC各种模块):&&源程序下载访问&
给TA发消息
加TA为好友 发表于: 09:17:47 3楼
太麻烦了,用ABB的AC800M低端PLC,一句话搞定,&MAX(VAR1,VAR2,.....VARn), MIN(VAR1,VAR2,....VARn)
给TA发消息
加TA为好友 发表于: 09:39:12 4楼
初始化min = a【0】, max = a【0】, 然后遍历这个数组:for(i = 0; i & i++){& & if(min & a【i】)&&&&& & min = a【i】;& & else if(max & a【i】)&&&&& & max = a【i】;}把算法移植到PLC时,根据实际应用不同可以做一些修改。如果数组不大,可以把for循环在一个扫描周期内完成;如果数组较大,而PLC处理能力较弱,则可以分多个周期完成。
给TA发消息
加TA为好友 发表于: 17:16:24 5楼
采用三菱FX2NPLC& 采用数据比较指令书写& 通过偏址读出最大值与最小值
给TA发消息
加TA为好友 发表于: 17:20:40 6楼
不知道为什么 上传图片顺序错了&& 应该是3142的顺序才对& 还有一些中大型PLC 如倍福 ABB 都是一个函数的事情& 普通小型PLC没有数据查找指令 可以通过冒泡排序的方法 用FOR循环进行比较 即可& 上述指令的数据是为了实现此功能而实现 显示应用中可以用偏址的方式进行数据存储 加强程序的可读行 !
给TA发消息
加TA为好友 发表于: 13:43:10 7楼
5个数去掉最大与最小,剩下最后三个数取平均值,这两项倒能做到,用PLC编程可能比较麻烦(C语言两三下就解决了,PLC麻烦大了),好在不用排序,5个数反复比较就能都到结果,比方说,a1-a5这5个数字,a1与a2比较,a1&a2,留下a2,a1再与a3比较,大于a3,留下a1,a3就与a4比较,以此类推,筛选出最小的数据,剔除这个数,再筛选一次,就剔除了第二小的。求平均就比较好办了,相加除3就可以了。半个周期采集一次数据?这个难度太大,主要是硬件上,没有这么高的响应水平,一般的扫描周期在10ms-100ms之间,也就是5ms要取到5个外部数据,输入口可以做到么?高速计数器有可能可以,可是那是计数啊,取得是开关量,如果是上位机传输数据,5数据怎么在5ms也读不出来吧?对于PLC来说难度太大。
给TA发消息
加TA为好友 发表于: 10:10:02 8楼
说明:VD100为存储输入的实数,VD104为最大值,VD108为最小值。当VD100不等于0时,就会将VD104和VD108进行赋值,然后通过输入值与原有值比较,再通过传送就会显示出最大值和最小值。(寄存器为断电保持型)
给TA发消息
加TA为好友 发表于: 17:37:46 9楼
好久没来;但心依然在!!下面为南大傲拓NA200用冒泡法排序的例子;只是中值平均算法的一部分程序;如果有需要可以来信:;软件可以到南大傲拓下载!如下图所示;&注:
给TA发消息
加TA为好友 发表于: 17:39:19 10楼
硬件配置里面;如下图所示;
给TA发消息
加TA为好友 发表于: 10:25:02 11楼
从今天起开始打plc擂台!
给TA发消息
加TA为好友 发表于: 15:06:28 12楼
这个用三菱q系列实现起来黑简单,用max和min指令!以10组数据为例,查找10组数据中的最大最小值,程序如下:&写数据:&数据最大最小值:
给TA发消息
加TA为好友 发表于: 21:04:37 13楼
利用冒泡法西门子300/400程序:假定十个数据,放在DB1中,安放顺序如下:DBD0DBD4…DBD36下面程序:OPN&&&DB&&&&1&&&&&&&&&&&&&&&&&/////打开DB1这个数据块&&&&&&L&&&&&10&&////装载10到MB0中,因为有十个数据,要进行十次排序,9次也可以的LL0:&&T&&&&&MB&&&&0&&&&&&L&&&&&P#0.0&&&////装载地址指针,这是关键,不要搞错了&&&&&&LAR1&&&&&&&&L&&&&&9LL1:&&T&&&&&MB&&&&2&&&////内部循环,进行9次,直到把最大值排到最后&&&&&&L&&&&&DBD&【AR1,P#0.0】&&&&&&L&&&&&DBD&【AR1,P#4.0】&&&&&&&R&&&&&&&&&&JC&&&&LL2&&&&&&&&&&////比较前后两个值,如果前面大于后面的,则前后数据交换&&&&&&L&&&&&DBD&【AR1,P#0.0】&&&&&&T&&&&&#m_temp&&&&&&L&&&&&DBD&【AR1,P#4.0】&&&&&&T&&&&&DBD&【AR1,P#0.0】&&&&&&L&&&&&#m_temp&&&&&&T&&&&&DBD&【AR1,P#4.0】LL2:&&+AR1&&P#4.0&&&&&////指针自动进行加4,因为是浮点数,所以要跳过4个字节&&&&&&L&&&&&MB&&&&2&&&&&&LOOP&&LL1&&&&&&&///这个指令自动的将A寄存器里的值减1&&&&&&L&&&&&MB&&&&0LOOP&&LL0&
给TA发消息
加TA为好友 发表于: 13:40:19 14楼
比如西门子S7-300/400中,MW20,MW22,MW24,MW26,MW28从中找出最大值和最小值,可以利用SCL,A:=&MAX&(IN1:=a,&IN2:=b,&IN3:=c,&IN4:=d);A:=&MIN&(IN1:=a,&IN1:=b,&IN1:=c,&IN1:=d);来取最大值和最小值
给TA发消息
加TA为好友 发表于: 21:32:16 15楼
如三菱plc 可用SER指令如:SER D100 D0 D10 K10&&其中D100 K10是指以D100为首的10个寄存器,而D0是要查找的数据 D10则是目标的个数注意不是目标的数据 而D11则是第一个符合目标的值D12是最后一个符合的目标值 D13是最小值的位置 D14就是最大值的位置
给TA发消息
加TA为好友 发表于: 14:53:47 16楼
用S7-200编写的程序:Sin_1Sin_2Sin_3 2)可再编写一个实数运算子程序,形式与此类似,只要将程序中对应的数改为实数,指令也随之改为实数操作指令即可。&&
给TA发消息
加TA为好友 发表于: 13:09:11 17楼
使用VB6。0,buff【4】为最大值,buff【0】为最小值。Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim buff() As Int16 = {9, 7, 5, 8, 6}Dim temp As Int16Dim i = 0Dim j = 0For i = 0 To 4 Step 1&&&&&&&&&For j = 0 To 3 Step 1If buff(j) & buff(j + 1) Thentemp = buff(j)buff(j) = buff(j + 1)buff(j + 1) = tempEnd IfNextNextLabel1.Text = buff(2)End Sub&
给TA发消息
加TA为好友 发表于: 13:10:16 18楼
补充上面,buff【2】为中值
给TA发消息
加TA为好友 发表于: 19:40:18 19楼
强人,高手多多,可是我还是个菜鸟。学习中
给TA发消息
加TA为好友 发表于: 22:34:22 20楼
回复内容:对:cqu_rockwell--王者之师关于这个用三菱q系列实现起来黑简单,用max和min指令!以10组数据为例,查找10组数据中的最大最小值,程序如下:&写数据:&数据最大最小值:内容的回复:你那个程序里的 mov k15 d0&& 是不是写错了,应该是d110吧
给TA发消息
加TA为好友 发表于: 22:57:59 21楼
一等奖1名,20MP获得者: wyb2866255---王者之师&&&&&&&&& wyb2866255二等奖5名,10MP获得者: chenminglei0509&&&&&&&&&&&&&&&&&&&& chenminglei0509矩形科技&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 矩形科技 gsj&&&&&&&&&&&&&&&&&&&&&&&& gsj congxizhong2012&&&&&&&&&&&&&&&&&&&& congxizhong2012zuozhuan&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& zuozhuan 三等奖2名,100积分获得者: cqu_rockwell--王者之师&&&&&&&& cqu_rockwellnewchp&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& newchp bhdxzgp&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& bhdxzgpabysmal&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& abysmal nineapple&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& nineapple sdzhibohui&&&&&&&&&&&&&&&&&&&&&&&&&&&&& sdzhibohui纵横军团—ww&&&&&&&&& wwyeyewcheng&&&&&&&&&&&&&&&&&&&&&&&&& yeyewcheng
给TA发消息
加TA为好友 发表于: 22:58:51 22楼
一等奖1名,20MP获得者: wyb2866255---王者之师&&&&&&&&& wyb2866255二等奖5名,10MP获得者: chenminglei0509&&&&&&&&&&&&&&&&&&&& chenminglei0509矩形科技&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 矩形科技 gsj&&&&&&&&&&&&&&&&&&&&&&&& gsj congxizhong2012&&&&&&&&&&&&&&&&&&&& congxizhong2012zuozhuan&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& zuozhuan 三等奖2名,100积分获得者: cqu_rockwell--王者之师&&&&&&&& cqu_rockwellnewchp&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& newchp bhdxzgp&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& bhdxzgpabysmal&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& abysmal nineapple&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& nineapple sdzhibohui&&&&&&&&&&&&&&&&&&&&&&&&&&&&& sdzhibohui纵横军团—ww&&&&&&&&& wwyeyewcheng&&&&&&&&&&&&&&&&&&&&&&&&& yeyewcheng
给TA发消息
加TA为好友 发表于: 23:00:10 23楼
本期擂台到此为止,欢迎大家继续参与我们以后的各期兑换平台!
给TA发消息
加TA为好友 发表于: 15:45:35 24楼
引用 nineapple 的回复内容:太麻烦了,用ABB的AC800M低端PLC,一句话搞定,&MAX(VAR1,VAR2,.....VARn), MIN(VAR1,VAR2,....VARn)MAX或MIN支持多个变量求最大或最小值?&不是MAX(VAR1,MAX(VAR2,MARX(...)));&&
给TA发消息
加TA为好友 发表于: 16:39:26 25楼
都是些高手&&&&&&&&&&&&&&&&&&&
给TA发消息
加TA为好友 发表于: 08:21:33 26楼
路过学习,学海无涯啊。
给TA发消息
加TA为好友 发表于: 20:00:00 27楼
您好& 请问能把求最大最小值程序发我一份么 谢谢!
给TA发消息
加TA为好友 发表于: 01:38:14 28楼
好帖子呀,正好用到,谢谢各位了
给TA发消息
加TA为好友 发表于: 17:59:20 29楼
回复内容:对: C4E6
好帖子呀,正好用到,谢谢各位了 内容的回复!采用施耐德m241PLC somachine4.1编程软件,用ST语言编写,程序如下:(*变量申明*)PROGRAM PLC_PRGVAR iMin:INT :=0; iMax:INT :=0; a_iNum:ARRAY[1..10]OF INT :=[11,2,3,4,5,6,7,8,9,10]; i:BYTE :=0;END_VAR(*程序实现*)iMax := iMin := a_iNum[1]; FOR i := 1 TO 10DO IF a_iNum[i] & iMin THEN
iMin := a_iNum[i]; ELSIF a_iNum[i]& iMax THEN
iMax := a_iNum[i]; ELSE
给TA发消息
加TA为好友 发表于: 07:56:38 30楼
回复内容:对: wyb2866255---王者之师
用S7-200编写的程序:程序说明:&& 本程序将求数... 内容的回复!&将数组的第一个数加一 送入最小值
周点击排行周回复排行
[52] [27] [23] [22] [22] [21] [20] [20] [18] [17]
[8] [3] [2] [2] [1] [1] [1] [1] [1] [1]最新求助
[1] [2] [0] [1] [10] [6] [5] [10] [4] [1]S7-300/400 PLC 数据块的功能及相关指令
添加时间:
来源: | 阅读量:813
提示: 数据块主要用于存储程序的数据。依据前面的介绍,根据一个数据块是否被划分给一个功能块支配,可将数据块分为全局数据块和背景数据块。全局数据块是指没有被任何功能块支配的数据块,背景数据块则是指被功能块支配的数据块。 数据块中存储的数据在程序的运行过程中是需要读出的,用于程序的执行;而程序执行完毕又要将数据
&&& 数据块主要用于存储程序的数据。依据前面的介绍,根据一个数据块是否被划分给一个功能块支配,可将数据块分为全局数据块和背景数据块。全局数据块是指没有被任何功能块支配的数据块,背景数据块则是指被功能块支配的数据块。
&&& 数据块中存储的数据在程序的运行过程中是需要读出的,用于程序的执行;而程序执行完毕又要将数据写进数据块,因此就涉及对数据块的操作。不管是读出数据还是写进数据,在对数据块进行操作之前都要打开数据块。
&&& S7系统中有两个数据块寄存器:全局数据块寄存器(DB)和背景数据块寄存器(DI)。很明显,DB用于打开全局数据块,而DI用于打开背景数据块。在PLC系统中,数据可以分为位、字节、字、双字等类型进行操作;那么用DB或DI打开数据块,进行数据的读出或写入操作时,在指令形式上也要给出数据的操作类型。例如,用DB打开一个数据块,然后进行字运算,则表示如DBWy;具体的形式如表4-12所示。
&&& 表4-12&&& 数据块的读写形式
&&& 说明:DB/DI指用于打开数据块的寄存器类型;紧跟在DB/DI后的X、B、W、D分别指位、字节、字、双字;y指字节的地址,x指一个字节中位的地址。
&&& 在具体程序中实现打开数据块的指令是OPEN指令,该指令的具体应用如图4-59所示。用OPEN指令打开的数据块必须是预先建立好的,对于全局数据块和背景数据块都可以用OPEN指令打开。
&&& 图4-59&&& 用OPEN指令打开数据块
(责任编辑: 佚名 )
本文关键字:
免责声明:本文章仅代表作者个人观点,与艾特贸易网无关。本站大部分技术资料均为原创文章,文章仅作为读者参考使用,请自行核实相关内容,如若转载请注明来源:
根据Fe-Fe3C相图,可以分析不...
网状裂纹的特征如图4-7所示。...
(1)在配网通信系统中的应用。...
套合加工,指书芯、书封制作...
新闻热点排行}

我要回帖

更多关于 java数组找出重复数据 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信