當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動(dòng)化控制 > PLC可編程控制器
發(fā)布日期:2022-04-26 點(diǎn)擊率:1054
怎樣讀出PLC高數(shù)計(jì)數(shù)器的最大值和最小值
運(yùn)用冒泡法
西門子300/400程序:
假定十個(gè)數(shù)據(jù),放在DB1中,安放次第如下:
DBD0
DBD4
…
DBD36
下面程序:
OPN DB 1 /////翻開DB1這個(gè)數(shù)據(jù)塊
L 10 ////裝載10到MB0中,因?yàn)橛惺畟€(gè)數(shù)據(jù),要進(jìn)行十次排序,9次也可以的
LL0: T MB 0
L P#0.0 ////裝載地址指針,這是要害,不要搞錯(cuò)了
LAR1
L 9
LL1: T MB 2 ////內(nèi)部循環(huán),進(jìn)行9次,直到把最大值排到終究
L DBD 【AR1,P#0.0】
L DBD 【AR1,P#4.0】
<R
JC LL2 ////比照前后兩個(gè)值,假定前面大于后邊的,則前后數(shù)據(jù)交流
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 ////指針主動(dòng)進(jìn)行加4,由所以浮點(diǎn)數(shù),所以要越過4個(gè)字節(jié)
L MB 2
LOOP LL1 ///這個(gè)指令主動(dòng)的將A寄存器里的值減1
L MB 0
LOOP LL0
比方西門子S7-300/400中,MW20,MW22,MW24,MW26,MW28從中找出最大值和最小值,可以運(yùn)用SCL,A:= MAX (IN1:=a, IN2:=b, IN3:=c, IN4:=d);
A:= MIN (IN1:=a, IN1:=b, IN1:=c, IN1:=d);來取最大值和最小值
如三菱plc 可用SER指令如:SER D100 D0 D10 K10
其間D100 K10是指以D100為首的10個(gè)寄存器,而D0是要查找的數(shù)據(jù) D10則是方針的個(gè)數(shù)留心不是方針的數(shù)據(jù) 而D11則是榜首個(gè)契合方針的值D12是終究一個(gè)契合的方針值 D13是最小值的方位 D14即是最大值的方位
下一篇: PLC、DCS、FCS三大控
上一篇: MATLAB和Simulink在航