問:纜車上裝有編碼器,想通過S7-200的高速計數器和編碼器計算纜繩的長度和計算纜繩的運行速度。目前將編碼器A、B相接入I0.0,采用HSC0計數器,纜繩隨時都會上升和下降,通過脈沖計數,計算出纜繩的長度,請教下HSC指令該怎么配置,又如何計算當前纜繩的運行速度呢?
答:定義高速計數器無外乎下面幾個步驟:
1、建一個初始化程序,用SM0.1控制;
2、在初始化程序中,初始化高速計數器
2.1 設置控制寄存器(HSC0為SMB37),不同的計數器對應不同的DI點,HSC0為I0.0,HSC3為I0.1,HSC4為I0.2,HSC5為I0.3(222不支持HSC1和HSC2)
2.2 執行HDEF指令,你可以用模式0
2.3 置計數器初始值(HSC0為SMD38),如果從零啟動就置零
2.4 置預置值(HSC0為SMD42),計數器計到這個值可以產生一個中斷,一般利用這個中斷調用相應的中斷程序把當前值(SMD38)復零,否則計數器到頭就不再計數了,當然你也可以置一個大點的值,在其他程序中清除當前值(SMD38),確保永遠到不了頭就可以了。
2.5 指定中斷程序(ATCH),中斷事件是12,程序號看你程序了
2.6 打開中斷(ENI),這條指令沒有的話,2.5是不起作用的
2.7 啟動高速計數器(HSC),按前面的初始化,你就要啟動HSC0,即N為0
3、程序中讀取高速計數器的值,對于HSC0,HC0單元中的內容就是當前的計數值,這個單元只讀不能寫,你可以通過修改SMD38的內容改變當前的計數值。