s7-200中用&來間接尋址,用vw100做指針,程序上電時將vw100清零。
比如推第壹個物料時計數器為1000,輸送帶長度為5000脈沖,那麽推壹個物料時執行
+d hsc0 5000 vd88
if{
>d vd88 100000
-d vd88 100000}
movd vd88 &vw100
+i vw100 4 vw100
推第二個物料時計數器為2000,那麽執行
+d hsc0 5000 vd88
if{
>d vd88 100000
-d vd88 100000}
movd vd88 &vw100
+i vw100 4 vw100
在將高速計數器加5000後要判斷壹次是否大於妳的高速計數器清零值(我假設的是100000),如果大於要將該值減去妳的最大值後再保存,否則這個值永遠也達不到,就會漏推出去物料。
妳可以發現上面的程序是壹樣的,那麽就可以將這段程序編成子程序,每次推物料時執行壹次這個子程序,壹定只能執行壹遍。
再主程序中加入壹個判斷程序,判斷vw100,如果vw100大於80,將其清零就可以實現位置只能保存在vd0-vd80之間了,也就是保存了21個位置,如果不夠妳可以修改指針大小,之道滿足妳的要求。
主程序中比較這個區域中的數值和hsc0,計數器大於任何壹個數值時動作壹次第二個電磁閥就可以,這個動作也需要用到微分指令。
很久沒用s7-200了,很多指令記不住了,所以程序只能表達壹下意思,不正確的。妳自己根據這個意思修改壹下就可以了。