《現代電器控制及PLC應用第二版》第7章的問(wèn)題
1 計數范圍是0-255
2 計數脈沖是SM0.5
3 當外部輸入I0.0的狀態(tài)改變時(shí)觸發(fā)中斷1/0, 中斷1將M0.0置位,中斷0將M0.0復位
4 當M0.0=1時(shí),計數器加計數,當M0.0=0時(shí)計數器減計數
5 計數器數值通過(guò)QB0七段碼顯示。
我的分析如下: SM0.5為0.5S通/0.5S斷的脈沖。 方向控制為I0.0,不要求復位信號, 增減計數, 所以我選擇 1號計數器,工作模式為6
當M0.0=1時(shí) 將FB寫(xiě)入 SMB47 255送入SMB48 當M0.0=0時(shí) 將F0送入SMB47 255 送入SMB48
我的問(wèn)題:
1 這個(gè)程序中 當沒(méi)有外部輸入時(shí)怎么定義高速計數器?
2 I0.0我認為是外部方向控制 通過(guò)I0.0來(lái)調用中斷對M0.0的狀態(tài)進(jìn)行控制 ,是不是可以認為I0.0就是外部方向控制?
3 當沒(méi)有外部中斷時(shí),計數器如何計數?
主程序:
網(wǎng)絡(luò )1
LD SM0.1 初始化脈沖
CALL SBR_0:SBR0 調用子程序
HDEF 1, 6 高速計數器選擇1號 工作模式6
HSC 1 啟動(dòng)高速計數器
網(wǎng)絡(luò )2
LD SM0.5 計數脈沖
HSC 1
網(wǎng)絡(luò )3
LD SM0.0
MOVD HC1, VD100 讀高數計數器的值送入VD100
DTI VD100, VW400 將整數轉換為雙子
ITB VW400, VB200 字轉換為字節
SEG VB200, QB0 VB200的值送入QB0 七段碼
SRB VB200, 4
SEG VB200, QB0
子程序:
網(wǎng)絡(luò )1
LD I0.0 I0.0上升沿時(shí)調用中斷程序0 中斷事件號為0
ATCH INT_0:INT0, 0
ENI
網(wǎng)絡(luò )2
LD I0.1 I0.0上升沿時(shí)調用中斷程序1 中斷事件號為1
ED
ATCH INT_1:INT1, 1
ENI
0號中斷程序:
LD SM0.0
S M0.0, 1 置位M0.0
MOVB 16#F8, SMB47 將FB送入高速計數器SMB47控制位 加計數
MOVD 0, SMD48 清零高速計數器初始值
HDEF 1, 6 定義高速計數器
HSC 1 啟動(dòng)
1號中斷程序:
LD SM0.0
R M0.0, 1 復位M0.0
MOVB 16#F0, SMB47 F0送入高速計數器SMB47控制位 減計數
MOVD 0, SMD48 清零高速計數器
HDEF 1, 6 定義
HSC 1 啟動(dòng)