PLC與觸摸屏實現翻頁
近段時間開發一種機器系統,其中有一項功能是將每天的機器工作數目在觸摸屏中顯示出來,天數要兩年;并且只要輸入日期,觸摸屏上就可以將任意時間的數目進行統計。我自己設計了一個程序,愿與大家分享。如有問題請指正。
畫面講述
本系統用的是OMRON的CQM1H-51的PLC,觸摸屏用的是Pro-face的GP577R。其畫面如下圖1-A所見。
圖中所示的B1按下后,就可以設置統計日期;設置完后,再按一下B2,就會統計兩年內任意日期內的工件數。A1下的是指示數,從1~730,A2下的是年月日,如(030528)指的是03年05月28日。A3即每天的工件數。C1是向上翻頁鍵,C2是向上翻行鍵,C3是向下翻頁鍵,C4是向下翻行鍵。
地址分布
觸摸屏的系統地址從DM500開始。
A1下的數字用的是一個觸摸屏中的N標簽,其功能如圖2-A所示。地址是觸摸屏的內部地址區域,我用的是LS2000; N標簽上有一個運算,從上到下分別是LS2000+1~LS2000+10。
A2下的數字用的是一個觸摸屏中的兩位E標簽,其功能如圖2-B所示。地址是PLC的內部地址區域,我用的是DM1000~1001。從上到下分別是DM1000~DM1018。
A3下的數字用的也是一個觸摸屏中的兩位E標簽,其功能如圖2-C所示。地址是PLC的內部地址區域,我用的是DM2000~2001。從上到下分別是DM2000~DM2018。
B1是觸摸鍵,用來設定起始日期和終止日期日期。B2=22915,用來觸發統計總的工件數。
C1~C4用的是一個觸摸屏中的T標簽,其功能如圖2-D所示。地址是觸摸屏的內部地址區域,C1=LS50102,C2=LS50103,C3=LS50100 ,C4=LS50101。
觸摸屏程序
Pro-face的觸摸屏有D-Script Editor功能,請大家看以下的程序。
ID : 0000
Trigger : Bit Rising , Edge Bit Address : LS050100
Formula :
if ([w:LS1000]<=758)
{[w:LS1000]=[w:LS1000]+2
}
endif
Date Type : BCD Data Length : 16 Bit
此程序的是用來向下翻行,即指示值(A1)小于758時,將畫面向下翻一行。
ID : 0001
Trigger : Bit Rising , Edge Bit Address : LS050101
Formula :
if ([w:LS1000]<=720)
{[w:LS1000]=[w:LS1000]+40
}
endif
Date Type : BCD Data Length : 16 Bit
此程序的是用來向下翻頁,即指示值(A1)小于720時,將畫面向下翻一頁。
ID : 0002
Trigger : Bit Rising , Edge Bit Address : LS050102
Formula :
if ([w:LS1000]>=40)
{[w:LS1000]=[w:LS1000]-40
}
endif
Date Type : BCD Data Length : 16 Bit
此程序的是用來向上翻頁,即指示值(A1)大于等于40時,將畫面向上翻一頁。
ID : 0003
Trigger : Bit Rising , Edge Bit Address : LS050103
Formula :
if ([w:LS1000]>=2)
{[w:LS1000]=[w:LS1000]-2
}
endif
Date Type : BCD Data Length : 16 Bit
此程序的是用來向上翻行,即指示值(A1)大于等于2時,將畫面向上翻一行。
ID : 0004
Trigger : Timer Fn , Timer Duration : 1
Formula :
[w:LS2000]=[w:LS1000]/2
Date Type : BCD Data Length : 16 Bit
此程序的顯示指示數A1。
PLC程序
[NETWORK]
Name="calendar"(本段是將每天的日期轉換到觸摸屏中)
[STATEMENTLIST]
LD 253.13
OUT TR0
CMP DM0502 HR92 //DM0502是系統的年
AND NOT 255.06
LD TR0
AND 049.02
OR LD
AND NOT TIM252
AND NOT 049.03
AND NOT 049.04
OUT 049.02
TIM 252 #0010
LD TR0
MOV DM0502 HR92
CMP DM0503 HR93 //DM0503是系統的月
AND NOT 255.06
LD TR0
AND 049.03
OR LD
AND NOT TIM253
AND NOT 049.04
OUT 049.03
TIM 253 #0010
LD TR0
MOV DM0503 HR93
CMP DM0504 HR94 //DM0504是系統的日
AND NOT 255.06
OUT 049.04
LD TR0
MOV DM0504 HR94
AND TIM252
LD TR0
AND TIM253
OR LD
LD TR0
AND 049.04
OR LD
OUT TR1
ADD #0002 DM0070 DM0070 //DM0070是指針字
CMP DM0070 #0800
AND 255.05
LD TR1
AND 255.06
OR LD
MOV #0000 DM0070
LD TR1
ADD DM0070 #2000 DM0076 //間接尋址,DM2000
ADD DM0070 #2001 DM0077 //間接尋址,DM2001
ADD DM0070 #1000 DM0074 //間接尋址,DM1000
BSET #0000 *DM0076 *DM0077
MCRO 10 DM0502 DM0626 //子程序入口
XFER #0002 DM0628 *DM0074 //日期寫入觸摸屏
[NETWORK]
Name="count&reset"(本段是程序記數與復位)
[STATEMENTLIST]
LD 253.13
OUT TR0
AND 228.10 //觸摸屏上清零鍵
DIFU 080.10
LD TR0
AND 080.10
BSET #0000 DM0066 DM0067 //DM0066~67位計數值
LD TR0
AND 081.15 //計數角度微分
AND HR64.04 //計數角度位置
OUT TR1
INC DM0066 //工件數的低位
AND 255.06
INC DM0067 //工件數的高位
LD TR1
INC *DM0076 //每天工件數的低位
AND 255.06
INC *DM0077 //每天工件數的高位
[NETWORK]
Name="Sum"(本段是程序統計)
[STATEMENTLIST]
LD 253.13
OUT TR0
AND 229.15 //觸摸屏上統計鍵
DIFU 080.15
LD TR0
AND 080.15
SET HR70.00 //統計開始標志
MCRO 10 DM0602 DM0606 //觸摸屏設定起始日期
MCRO 10 DM0612 DM0616 //觸摸屏設定終止日期
BSET #0000 DM0080 DM0083 //指針2
LD TR0
AND HR70.00
OUT TR1
ADD DM0080 #2000 DM0086 //間接尋址,DM2000
ADD DM0080 #1000 DM0084 //間接尋址,DM1000
CMPL *DM0084 DM0608
AND 255.05
LD TR1
AND 255.06
OR LD
OUT 048.01
LD TR1
CMPL *DM0084 DM0618
AND 255.07
LD TR1
AND 255.06
OR LD
OUT 048.02
LD TR1
AND 048.01
AND 048.02
ADDL *DM0086 DM0081 DM0081
AND 255.04
INC DM0083
LD TR1
ADD DM0080 #0002 DM0080
CMP DM0080 #0800
AND 255.05
LD TR1
AND 255.06
OR LD
RSET HR70.00
XFER #0003 DM0081 DM0091
畫面講述
本系統用的是OMRON的CQM1H-51的PLC,觸摸屏用的是Pro-face的GP577R。其畫面如下圖1-A所見。
圖中所示的B1按下后,就可以設置統計日期;設置完后,再按一下B2,就會統計兩年內任意日期內的工件數。A1下的是指示數,從1~730,A2下的是年月日,如(030528)指的是03年05月28日。A3即每天的工件數。C1是向上翻頁鍵,C2是向上翻行鍵,C3是向下翻頁鍵,C4是向下翻行鍵。

地址分布
觸摸屏的系統地址從DM500開始。
A1下的數字用的是一個觸摸屏中的N標簽,其功能如圖2-A所示。地址是觸摸屏的內部地址區域,我用的是LS2000; N標簽上有一個運算,從上到下分別是LS2000+1~LS2000+10。
A2下的數字用的是一個觸摸屏中的兩位E標簽,其功能如圖2-B所示。地址是PLC的內部地址區域,我用的是DM1000~1001。從上到下分別是DM1000~DM1018。
A3下的數字用的也是一個觸摸屏中的兩位E標簽,其功能如圖2-C所示。地址是PLC的內部地址區域,我用的是DM2000~2001。從上到下分別是DM2000~DM2018。
B1是觸摸鍵,用來設定起始日期和終止日期日期。B2=22915,用來觸發統計總的工件數。
C1~C4用的是一個觸摸屏中的T標簽,其功能如圖2-D所示。地址是觸摸屏的內部地址區域,C1=LS50102,C2=LS50103,C3=LS50100 ,C4=LS50101。
觸摸屏程序
Pro-face的觸摸屏有D-Script Editor功能,請大家看以下的程序。
ID : 0000
Trigger : Bit Rising , Edge Bit Address : LS050100
Formula :
if ([w:LS1000]<=758)
{[w:LS1000]=[w:LS1000]+2
}
endif
Date Type : BCD Data Length : 16 Bit
此程序的是用來向下翻行,即指示值(A1)小于758時,將畫面向下翻一行。
ID : 0001
Trigger : Bit Rising , Edge Bit Address : LS050101
Formula :
if ([w:LS1000]<=720)
{[w:LS1000]=[w:LS1000]+40
}
endif
Date Type : BCD Data Length : 16 Bit
此程序的是用來向下翻頁,即指示值(A1)小于720時,將畫面向下翻一頁。
ID : 0002
Trigger : Bit Rising , Edge Bit Address : LS050102
Formula :
if ([w:LS1000]>=40)
{[w:LS1000]=[w:LS1000]-40
}
endif
Date Type : BCD Data Length : 16 Bit
此程序的是用來向上翻頁,即指示值(A1)大于等于40時,將畫面向上翻一頁。
ID : 0003
Trigger : Bit Rising , Edge Bit Address : LS050103
Formula :
if ([w:LS1000]>=2)
{[w:LS1000]=[w:LS1000]-2
}
endif
Date Type : BCD Data Length : 16 Bit
此程序的是用來向上翻行,即指示值(A1)大于等于2時,將畫面向上翻一行。
ID : 0004
Trigger : Timer Fn , Timer Duration : 1
Formula :
[w:LS2000]=[w:LS1000]/2
Date Type : BCD Data Length : 16 Bit
此程序的顯示指示數A1。
PLC程序
[NETWORK]
Name="calendar"(本段是將每天的日期轉換到觸摸屏中)
[STATEMENTLIST]
LD 253.13
OUT TR0
CMP DM0502 HR92 //DM0502是系統的年
AND NOT 255.06
LD TR0
AND 049.02
OR LD
AND NOT TIM252
AND NOT 049.03
AND NOT 049.04
OUT 049.02
TIM 252 #0010
LD TR0
MOV DM0502 HR92
CMP DM0503 HR93 //DM0503是系統的月
AND NOT 255.06
LD TR0
AND 049.03
OR LD
AND NOT TIM253
AND NOT 049.04
OUT 049.03
TIM 253 #0010
LD TR0
MOV DM0503 HR93
CMP DM0504 HR94 //DM0504是系統的日
AND NOT 255.06
OUT 049.04
LD TR0
MOV DM0504 HR94
AND TIM252
LD TR0
AND TIM253
OR LD
LD TR0
AND 049.04
OR LD
OUT TR1
ADD #0002 DM0070 DM0070 //DM0070是指針字
CMP DM0070 #0800
AND 255.05
LD TR1
AND 255.06
OR LD
MOV #0000 DM0070
LD TR1
ADD DM0070 #2000 DM0076 //間接尋址,DM2000
ADD DM0070 #2001 DM0077 //間接尋址,DM2001
ADD DM0070 #1000 DM0074 //間接尋址,DM1000
BSET #0000 *DM0076 *DM0077
MCRO 10 DM0502 DM0626 //子程序入口
XFER #0002 DM0628 *DM0074 //日期寫入觸摸屏
[NETWORK]
Name="count&reset"(本段是程序記數與復位)
[STATEMENTLIST]
LD 253.13
OUT TR0
AND 228.10 //觸摸屏上清零鍵
DIFU 080.10
LD TR0
AND 080.10
BSET #0000 DM0066 DM0067 //DM0066~67位計數值
LD TR0
AND 081.15 //計數角度微分
AND HR64.04 //計數角度位置
OUT TR1
INC DM0066 //工件數的低位
AND 255.06
INC DM0067 //工件數的高位
LD TR1
INC *DM0076 //每天工件數的低位
AND 255.06
INC *DM0077 //每天工件數的高位
[NETWORK]
Name="Sum"(本段是程序統計)
[STATEMENTLIST]
LD 253.13
OUT TR0
AND 229.15 //觸摸屏上統計鍵
DIFU 080.15
LD TR0
AND 080.15
SET HR70.00 //統計開始標志
MCRO 10 DM0602 DM0606 //觸摸屏設定起始日期
MCRO 10 DM0612 DM0616 //觸摸屏設定終止日期
BSET #0000 DM0080 DM0083 //指針2
LD TR0
AND HR70.00
OUT TR1
ADD DM0080 #2000 DM0086 //間接尋址,DM2000
ADD DM0080 #1000 DM0084 //間接尋址,DM1000
CMPL *DM0084 DM0608
AND 255.05
LD TR1
AND 255.06
OR LD
OUT 048.01
LD TR1
CMPL *DM0084 DM0618
AND 255.07
LD TR1
AND 255.06
OR LD
OUT 048.02
LD TR1
AND 048.01
AND 048.02
ADDL *DM0086 DM0081 DM0081
AND 255.04
INC DM0083
LD TR1
ADD DM0080 #0002 DM0080
CMP DM0080 #0800
AND 255.05
LD TR1
AND 255.06
OR LD
RSET HR70.00
XFER #0003 DM0081 DM0091


以上一段程序比較復雜,請大家慢慢理解,有疑問的話請發郵件到Joellyzqx@263.com或Joellyzqx@163.com。我有時間的話可以向大家解釋。另外從梯形圖軟件到word軟件中轉換,仍然保持梯形圖模式,我不知道如何轉換,如有知者,麻煩發一個郵件給我,謝謝!
文章版權歸西部工控xbgk所有,未經許可不得轉載。
上一篇:PLC中構造雙穩態按鈕
下一篇:step7編程之地址概念詳解