關(guān)于泵輪換的程序
劉玉蓉
發(fā)布于2014-09-16 17:03
8
0
標(biāo)簽:
想編寫一個(gè)泵輪換的程序,結(jié)果看了別人的一個(gè)泵輪換的程序看了N天都沒看懂,下面是程序代碼:
OPN DB 101
L P#6.5
T DB101.DBD 20
LAR1 P#6.0
LAR2 P#0.0
L 6 // 循環(huán)次數(shù)(風(fēng)機(jī)臺數(shù))
M001: T MB 10
A M [AR1,P#0.0] // 判斷M6.n,第n+1臺風(fēng)機(jī)的運(yùn)行狀態(tài)
JCN M002 // 非0時(shí)跳轉(zhuǎn)
TAR1
T DBD [AR2,P#0.0] // M6.n=1時(shí),將地址6.n存入數(shù)據(jù)塊定義的數(shù)據(jù)
+AR2 P#4.0
M002: +AR1 P#0.1
L MB 10
LOOP M001
LAR1 DB101.DBD 0 // 第1臺運(yùn)行的風(fēng)機(jī)臺號
L 5
M003: T MB 11
TAR1
T DB101.DBD 24
L DB101.DBD 20
==D // 當(dāng)前地址是M6.5,則轉(zhuǎn)為M6.0,下一步
JC S001
JU S005
S001: LAR1 P#6.0
TAR1
T DB101.DBD 16
JU S006
S005: +AR1 P#0.1
TAR1
T DB101.DBD 16
S006: L DB101.DBD 4 // 與第2臺運(yùn)行的風(fēng)機(jī)的臺號相同,則下一步
==D
JC M004
A M 20.1
AN M [AR1,P#0.0]
A M [AR1,P#1.0]
JCN M004
S M [AR1,P#0.0] // 將下一臺參與排序的風(fēng)機(jī)置“1”
TAR1
T DB101.DBD 8 // 切換后第1臺運(yùn)行的風(fēng)機(jī)的臺號
LAR1 DB101.DBD 0
R M [AR1,P#0.0]
JU S007
M004: L MB 11
LOOP M003
S007: LAR1 DB101.DBD 4 // 第2臺運(yùn)行的風(fēng)機(jī)臺號
L 5
M005: T MB 12
TAR1
T DB101.DBD 24
L DB101.DBD 20
==D // 當(dāng)前地址是M6.5,則轉(zhuǎn)為M6.0,下一步
JC S002
JU S004
S002: LAR1 P#6.0
TAR1
T DB101.DBD 16
JU S003
S004: +AR1 P#0.1
T DB101.DBD 16
S003: L DB101.DBD 0 // 與第1臺運(yùn)行的風(fēng)機(jī)的臺號相同,則下一步
==D
JC M007
L DB101.DBD 16
L DB101.DBD 8 // 與切換后第1臺運(yùn)行的風(fēng)機(jī)的臺號相同,則下一步
==D
JC M007
A M 20.1
AN M [AR1,P#0.0]
A M [AR1,P#1.0]
JCN M007
S M [AR1,P#0.0] // 將下一臺參與排序的風(fēng)機(jī)置“1”
LAR1 DB101.DBD 4
R M [AR1,P#0.0]
JU m010
M007: L MB 12
LOOP M005
m010: BEU
誰能對這段程序指點(diǎn)一二嗎?特別是如果能夠在變量表里驗(yàn)證泵能夠輪換就好。這段程序?qū)嵲谑亲屛一撕荛L時(shí)間,也實(shí)在是沒有搞明白。
問題補(bǔ)充:
對于西門子的指針我還是明白的,但是我不能做到用仿真PLC驗(yàn)證這段程序,即6臺電機(jī)輪換
佳答案
仿真測試了一下這段程序,這段程序本身貌似沒有輪換功能。
置位M20.1
MB6的狀態(tài)跟隨MB7變化。M7.0-5不能同時(shí)超過兩個(gè)點(diǎn)置位,否則M6.0-5會跳變.
將下面一段程序加到你的程序前面,置位M20.1并將M20.0作為切換按鈕,每按一次,可以簡單的輪換。
AN M 20.0
JC TURN
L MB 7
SRW 1
T MB 7
R M 20.0
L 0
<>I
JC TURN
L 32
T MB 7
TURN: NOP 0