稱煤地磅變大噸位后對(duì)原輸出系統(tǒng)的改造
如何在地磅的噸位變大后,使輸出系統(tǒng)的整個(gè)模式不變,是地磅改造的一個(gè)問(wèn)題。通 過(guò)小噸位地磅改大噸位后輸出系統(tǒng)仍保持原有狀態(tài)和模式的說(shuō)明,提出了解決這類問(wèn)題的方法。
1.小噸位地磅存在的問(wèn)題
由于汽車載重量不斷增加,30 t稱重重量已不 能滿足需要。因此,企業(yè)拆了 30 t的地磅,在原有的 地方新安裝了 100 t的地磅。100 t的地磅所帶的終 端系統(tǒng)是數(shù)碼管顯示,只能簡(jiǎn)單打印出每輛車每次 的載重量,根本不符合主管部門的要求。新安裝的 100 t地磅仍采用原有的計(jì)算機(jī)稱重軟件和系統(tǒng)。實(shí) 際投入使用后發(fā)現(xiàn),低于40 t的重量能夠準(zhǔn)確地進(jìn) 行顯示、計(jì)算、打印等,大于40 t的重量統(tǒng)統(tǒng)按40 t的重量統(tǒng)統(tǒng)按40t顯示、計(jì)算。
2.小噸位地磅輸出系統(tǒng)分析
通過(guò)對(duì)地磅稱重系統(tǒng)的硬件和軟件進(jìn)行分析 得知,地磅的傳感器共有6只,每只承重量是20 t,6 只傳感器串聯(lián)起來(lái)可以承重120 t。傳感器通過(guò) PC6139光電隔離模入接口卡和計(jì)算機(jī)進(jìn)行連接, PC6139接口卡主要承擔(dān)模擬信號(hào)與數(shù)字信號(hào)的轉(zhuǎn) 換。
原計(jì)算機(jī)稱重系統(tǒng)的軟件是用C語(yǔ)言編寫的, 通過(guò)對(duì)其源程序分析,沒(méi)有發(fā)現(xiàn)對(duì)超過(guò)40 t重量進(jìn) 行限制的任何語(yǔ)句。
為了找到地磅稱重時(shí)的重量和PC6139卡輸出 到計(jì)算機(jī)的數(shù)據(jù)之間的比例關(guān)系,用C語(yǔ)言編寫了 如下的測(cè)試程序采集原始數(shù)據(jù),該程序在Bor-land C++3.1 環(huán)境下編譯通過(guò)。主程序如下: #define PC_BASE 0x0318 /* 定義 PC6139 卡的端口地址*/#include
#include
#include
#include
#include
#include
#include
#include
#include
int far WL[300];
FILE *fp; long sum=0;
void far main(void)
{
register int i , m, n;
int data;
int len , k;
int DDD[100];
float ttt;
int flag;
int data_h,data_l;
fp=fopen ("test.dat","a+t"); /* 建立一個(gè)原始數(shù) 據(jù)輸出文件test.dat */
for(m = 0; m<100; m++) {inp(PC_BASE+3); outp(PC_BASE, 0); for(i=0; i<10000; i++) flag = 0x80; o卿(PC—BASE+1, 0); while(flag == 0x80) {
flag = inp(PC_BASE+2); flag = flag & 0x80;
}
data_h = inp(PC_BASE+2); data_l = inp(PC_BASE+3);
DDD[m] =data_h*256 + data_l; sum +=(long)DDD[m];
}
for(m = 0; m<100; m++) {
for(n = m+1; n<100; n++) { if(DDD[m] < DDD[n]) { data = DDD[m];
DDD[m] = DDD[n];
DDD[n] = data;
}
}
}
ttt = 0.0;
for(m = 12; m<18; m++) ttt = ttt + DDD[m]; data = (int)(ttt / 6.0); fprintf(fp,"ave=%f,n,sum/100.0); fprintf(fp,"real=%d,n,data); for(i=0;i<100;i++)
fprintf(fp,"%d,n,DDD[i]); fprintf(fp,"%cn,' '); fclose(fp); for(m=0; m<100; m++)
WL[m] = data;
}
通過(guò)對(duì)不同重量的測(cè)試,采集一組PC6139輸 出的原始數(shù)據(jù),結(jié)果發(fā)現(xiàn),地磅的載重一旦達(dá)到或 超過(guò)40 t時(shí),PC6139光電隔離模入接口卡的數(shù)碼 輸出值就達(dá)到該卡的最大值4 096。無(wú)論再怎樣增 加重量,其值不再增加,經(jīng)過(guò)計(jì)算機(jī)運(yùn)算后,輸出結(jié) 果保持在40 t。
分析認(rèn)為,地磅傳感器的輸出電壓值會(huì)隨著重 量的增加線性變大,但由于PC6139光電隔離模入
接口卡的放大增益過(guò)大,以至于地磅傳感器輸出電壓增大到一定時(shí)(重量超過(guò)40 t),PC6139光電隔離 模入接口卡數(shù)碼輸出值達(dá)到了最大,即便地磅傳感 器的輸出電壓隨著重量的增加而線性變大,數(shù)碼輸 出值也不再變化,因而不能正確反映重量大于40 t 的稱重值。
3.改造方法
由于地磅傳感器的輸出電壓值與所承載的重 量成正比關(guān)系,所以只要地磅傳感器在承載120 t 時(shí)的輸出電壓能夠推動(dòng)PC6139光電隔離模入接口 卡,數(shù)碼輸出值接近4 096(不可超過(guò)此值),通過(guò)修 改C語(yǔ)言編寫的稱重軟件的相關(guān)語(yǔ)句,就能正確反 映所稱物體的重量。
PC6139光電隔離模入接口卡放大增益公式 Rg=50/(G-1)
式中R——放大增益控制電阻;
G—放大增益倍數(shù)。
通過(guò)測(cè)量PC6139光電隔離模入接口卡原電阻 Rg(50 ft),得出其放大增益約1 000倍。為了滿足地 磅是120 t的稱重需要,將放大增益倍數(shù)降低,取 Rg=125 ft,放大增益約400倍即可。
降低PC6139光電隔離模入接口卡的放大增益 后,需要重新進(jìn)行地磅零重量標(biāo)定。具體做法:用汽 車承載100 t、80 t、60 t等幾組不同重量的重物進(jìn)行 稱重測(cè)量,記錄下PC6139光電隔離模入接口卡的 數(shù)碼輸出值與實(shí)際重量的變化關(guān)系表,得到數(shù)碼輸 出值變化與重量變化的比例關(guān)系。
由于降低了 PC6139光電隔離模入接口卡的放 大增益,就必須對(duì)地磅原來(lái)輸出系統(tǒng)源程序中零重 量標(biāo)定和比例關(guān)系進(jìn)行相應(yīng)地修改,否則無(wú)法顯示 正確的重量。根據(jù)測(cè)試程序測(cè)量取得的數(shù)據(jù),修改 后的關(guān)鍵源程序如下: aaa = 0.0; for(i=0; i<100; i++) aaa = aaa + WL[i]; aaa =(aaa/100.0 * 10000.0/4096.0); if(aaa <= 898.0) { as[BA] = aaa;
BA = BA+ 1; if(BA >= 5) {
BA = 0;
tmp = 0.0; for(i=0; i<5; i++) tmp = tmp + as[i]; sys_def.XS1 = tmp / 5.0;
} else {
BA = 0;
}
if(aaa <= sys_def.XS1) weight = 0.0 ;
else {
weight = (aaa-sys_def.XS1)*sys_def.XS2/10.0; if(weight < 0 ) weight = 0.0 ;
}
if(weight < 10) weight = 0.0;
至此,對(duì)原計(jì)算機(jī)稱重系統(tǒng)改造完成,經(jīng)過(guò)有 關(guān)部門對(duì)該系統(tǒng)檢測(cè),達(dá)到規(guī)定要求。
4輸出系統(tǒng)改造后的啟示
雖然以上的修改能滿足廠方地磅對(duì)大噸位的 需求,但程序的靈活性不大。在實(shí)際操作過(guò)程中,地 磅的自身重量和放大倍數(shù)常常受外界的干擾,所 以,需要定期對(duì)程序進(jìn)行適當(dāng)?shù)匦U???梢越o軟件 系統(tǒng)增加一個(gè)配制文件SYS_DAT.CFG,根據(jù)測(cè)試程 序測(cè)量取得的數(shù)據(jù),把地磅自身重量和放大倍數(shù)存 入該配置文件,當(dāng)需要修改2個(gè)參數(shù)時(shí),不需要修 改源程序文件,只需要修改SYS_DAT.CFG即可。