zjun3001
級別: 探索解密
精華主題: 0
發(fā)帖數量: 19 個
工控威望: 166 點
下載積分: 737 分
在線時間: 29(小時)
注冊時間: 2012-11-08
最后登錄: 2017-07-25
查看zjun3001的 主題 / 回貼
樓主  發(fā)表于: 2014-01-07 18:23
計數時超出高速計數器范圍時,我是在高速計數器達到規(guī)定值時用脈沖指令觸發(fā)普通計數器計數,再兩數相乘。現(xiàn)擔心計算結果有誤差,請問有什么好方法,請幫忙
sjm213
有小知識,無大學問。
級別: 論壇版主

精華主題: 7 篇
發(fā)帖數量: 5196 個
工控威望: 7419 點
下載積分: 158550 分
在線時間: 3152(小時)
注冊時間: 2007-11-21
最后登錄: 2024-11-07
查看sjm213的 主題 / 回貼
1樓  發(fā)表于: 2014-01-07 23:04
1,何種控制,會超出計數范圍?
2,為何擔心會有誤差呢?
john42tw
級別: 網絡英雄
精華主題: 0
發(fā)帖數量: 1276 個
工控威望: 6107 點
下載積分: 52058 分
在線時間: 1120(小時)
注冊時間: 2012-04-24
最后登錄: 2024-09-30
查看john42tw的 主題 / 回貼
2樓  發(fā)表于: 2014-01-08 08:18
轉換成實數  再相乘
zjun3001
級別: 探索解密
精華主題: 0
發(fā)帖數量: 19 個
工控威望: 166 點
下載積分: 737 分
在線時間: 29(小時)
注冊時間: 2012-11-08
最后登錄: 2017-07-25
查看zjun3001的 主題 / 回貼
3樓  發(fā)表于: 2014-01-08 21:15
計數在20000000次左右,頻率10000,擔心在c251復位時的計數誤差,其中一部分這樣的,請大家?guī)兔?br />ld x0  ;
set m1;
ld m1;
out c251 k9999;
ld m1;
dmov c251 d100;
ld c251
out c100 k9999;
rst c251;
ld m1;
dmov c100 d200;
dmul d200 k10000 d202;
dadd d100 d202 d204
sjm213
有小知識,無大學問。
級別: 論壇版主

精華主題: 7 篇
發(fā)帖數量: 5196 個
工控威望: 7419 點
下載積分: 158550 分
在線時間: 3152(小時)
注冊時間: 2007-11-21
最后登錄: 2024-11-07
查看sjm213的 主題 / 回貼
4樓  發(fā)表于: 2014-01-08 22:04
1,“計數在20000000次左右”,這個范圍C251沒有問題,-2,147,483,648~+2,147,483,647都OK;
2,“擔心在c251復位時的計數誤差”,它的復位也是在程序中進行的,不知道為何會有此擔心?
3,這段程序,X0已經被C251占用了,不應該再次使用;而且M1被置位后不用復位,直接用M8000替代掉就好了;
4,C251計數到9999時,就會將C100計數增1,而不是10000;
5,C251是高速計數的,不受PLC掃描周期影響,而RST指令是每掃描周期執(zhí)行一次,所以C251被復位前,它實際的計數值不可控,有可能已經遠遠超出K10000了,但超出的數值都因復位程序而被丟掉,肯定會造成計數不準確;
6,如果非要用這種方法控制,那么也要用高速計數器中斷,在中斷中累計C100的數值并復位C251。
zjun3001
級別: 探索解密
精華主題: 0
發(fā)帖數量: 19 個
工控威望: 166 點
下載積分: 737 分
在線時間: 29(小時)
注冊時間: 2012-11-08
最后登錄: 2017-07-25
查看zjun3001的 主題 / 回貼
5樓  發(fā)表于: 2014-01-09 11:11
請版主賜教,如這個數很大,既要計數盡可能正確又不加成本,該怎么編這個程序,請指點。
sjm213
有小知識,無大學問。
級別: 論壇版主

精華主題: 7 篇
發(fā)帖數量: 5196 個
工控威望: 7419 點
下載積分: 158550 分
在線時間: 3152(小時)
注冊時間: 2007-11-21
最后登錄: 2024-11-07
查看sjm213的 主題 / 回貼
6樓  發(fā)表于: 2014-01-09 20:55
1,直接使用C251,設置值可以隨便設,反正它實際值會一直增大的;
2,超出-2,147,483,648~+2,147,483,647范圍的話,用高速計數器中斷,
ld m1;
dmov c251 d100;
ld c251
out c100 k9999;
rst c251;
這段程序寫在中斷程序中。
zjun3001
級別: 探索解密
精華主題: 0
發(fā)帖數量: 19 個
工控威望: 166 點
下載積分: 737 分
在線時間: 29(小時)
注冊時間: 2012-11-08
最后登錄: 2017-07-25
查看zjun3001的 主題 / 回貼
7樓  發(fā)表于: 2014-01-10 17:26
剛入門沒理解,還不會用中斷
[ 此帖被zjun3001在2014-01-10 18:24重新編輯 ]