You are on page 1of 10

Khi mi lm quen vi PLC c l mi ngi cng ging mnh, lun thc mc lm sao c tn hiu analog u vo v hin th ln mn hnh?

? n s x l ra sao, vit hm nh th no, ri cc module vvvv ni chung l rt nhiu cu hi t ra. C nhiu bn thm ch lp trnh ri cng khng hiu sao n li nh vy, thm ch c help ca Siemens li cng khng hiu khi h cho ci hm, v d hm scale trong S7-300 FC105 li cng kh hiu hn.... 1. Tn hiu Analog input Vy nhng nu cc bn khng cn lp trnh m ch cn dng ci hm ny th gia tr ra s ng. ch cn cc bn bit dng th khng c g l sai c v Siemens c cc chuyn gia nghim cu ci ny ri . Mnh chp nguyn ci phn help cua Step 7 Manager ra y nh.
Lu : y mnh vit cho S7-300/400 nhng vi S7-200/1200/1500 cng lm tng t nh

The SCALE function takes an integer value (IN) and converts it to a real value in engineering units scaled between a low and a high limit (LO_LIM and HI_LIM). The result is written in OUT. The SCALE function uses the equation (ng thc) OUT = [ ((FLOAT (IN) K1)/(K2K1)) * (HI_LIMLO_LIM)] + LO_LIM Float: Mt gi tr du chm ng c chnh xc n. The constants K1 and K2 are set based upon whether the input value is BIPOLAR or UNIPOLAR. BIPOLAR: The input integer value is assumed to be between 27648 and 27648, therefore, K1 = 27648.0 and K2 = +27648.0 UNIPOLAR: The input integer value is assumed to be between 0 and 27648, therefore, K1 = 0.0 and K2 = +27648.0 If the input integer value is greater than K2, the output (OUT) is clamped to HI_LIM, and an error is returned. If the input integer value is less than K1, the output is clamped to LO_LIM, and an error is returned. Reverse scaling can be obtained by programming LO_LIM > HI_LIM. With reverse scaling, the value of the output decreases as the value of the input increases. iu c bit mnh mun cc bn ch l phn t m mu xanh trong hm trn. y chnh l cng thc m Siemens p dng cho mi module c tn hiu analoge ca mnh. Nu nh tn hiu vo c o cc v d t -10V n +10V ... th set bipolar bng 1 (tc l cho mt bit no bng 1 ri gn cho u vo ny ca FC105 l xong. y

c ci hng s K1, K2 l hng s maximum m module analog ca Siemens c th x l nn ngi ta vit cho dng maximum. Nh vy chng trnh c sn ca Siemens khng phi lc no cng ti u cho nn tt c cc chng trnh ca mnh v tnh ton Analog v phn gii ca module khng ging nhau v c th c nhng ng dng khng cn Scale K1,2 l 27648 do vy mnh u vit li c ti u hn. Mi cc bn tham kho chng trnh sau nh. "Chng trnh ti u ha cho tnh ton Analog c vit bi Admin ca vocsy" y thay th cng thc ca Siemens bng cng thc: Out=((Raw-Raw_Min)*(Scale_Max-Scale_Min))/(Raw_Max-Raw_Min) + Raw_Min y ta c: Raw: l gi tr c c t u vo Input module Raw_Max: l gi tr ln nht module c th c c hoc l mnh mun cho n c. ( trn Siemens ni l t nh hn 27648 , chnh l gi tr ln nht m module analog c th x l c). Raw_Min: L gi tr nh nht m module c th c. Scale_Max: Chnh l gi tr ln nht m mnh mong mun thc t hay chnh l gi tr Engineering . Chng hn y l fias tr nhit , p sut thc t .... Scalmin: l gi tr engineering nh nht. Chng trnh c vit di dng chng trnh con thun tin dng:
// Convert from interger to Real L #Raw ITD //(Lnh chuyn s nguyn 16 bit trong IN thnh s nguyn 32

bit trong OUT)


DTR //(Lnh chuyn s nguyn 32 bit trongIN thnh s thc ct

trong OUT)
T #_Raw_R L #Raw_Min ITD DTR T #_Raw_Min_R L #Raw_Max ITD DTR T #_Raw_Max_R // Calculation // Raw - Raw_Min (tr 2 s thc) L #_Raw_R

(copy vo RLO)

L #_Raw_Min_R -R T #_temp_real // Scale_Max - Scale_Min L #Scale_Max L #Scale_Min -R //(Raw - Raw_Min) * (Scale_Max - Scale_Min) L #_temp_real *R T #_temp_real // Raw_Max - Raw_Min L #_Raw_Max_R L #_Raw_Min_R -R T #_temp_real2 //(Raw - Raw_Min) * (Scale_Max - Scale_Min) / (Raw_Max - Raw_Min) L #_temp_real L #_temp_real2 /R //(Raw - Raw_Min) * (Scale_Max - Scale_Min) / (Raw_Max - Raw_Min) + Scale_Min L #Scale_Min +R T #_Output //(ct vo _out) y l chng trnh c rt gn v thc t mnh cn thm vi ci limit cho n na. Cc bn c tham kho chng trnh ny, nu cn lin h admin s tn tnh ch thm cho. Chng trnh c th y xem hnh nh km. V y l hnh nh chng trnh m gi chng trnh con trn thc thi 2. Tn hiu Analoge output Ngc li vi module input (module analog input l m ha ca dy s nguyn integer maximum 27648 t tn hiu analog u vo) th ngc li, u ra ca module analog lai l tn hiu analog t dy s integer maximum 27648. Nh trn mnh cng ni, trong th vin ca Siemens cng c sn hm ny ri v cc bn ch cn li n ra xi, l hm FC106. Nu khng c g ln th chu kh c help ca Siemens l lm c. y mnh cng chp nguyn ci hng dn ca Siemens cho cc bn tham kho The UNSCALE function takes a real input value (IN) in engineering units scaled between a low and a high limit (LO_LIM and HI_LIM) and converts it to an integer value. The result is written to OUT. The UNSCALE function uses the equation: OUT = [ ((INLO_LIM)/(HI_LIMLO_LIM)) * (K2K1) ] + K1 and sets the constants K1 and K2 based upon whether the input value is BIPOLAR or UNIPOLAR.

BIPOLAR: The output integer value is assumed to be between 27648 and 27648, therefore, K1 = 27648.0 and K2 = +27648.0 UNIPOLAR: The output integer value is assumed to be between 0 and 27648, therefore, K1 = 0.0 and K2 = +27648.0 If the input value is outside the LO_LIM and HI_LIM range, the output (OUT) is clamped to the nearer of either the low limit or the high limit of the specified range for its type (BIPOLAR or UNIPOLAR) and an error is returned. Thc ra y cng chnh l cng thc bin i ngc ca cng thc tnh gi tr ca analog input m thi. Th nhng mnh ni, cc bn nn to mt chng trnh ti u cho ng dng ca mnh v sau y mnh cng gii thiu vi cc bn chng trnh ca admin vocsy dnh cho cc bn tham kho.
++

Ta cng p dng cng thc

Out=((Raw-Raw_Min)*(Scale_Max-Scale_Min))/(Raw_Max-Raw_Min) + Raw_Min
L #Scale_Min ITD DTR T #_Scale_Min_R

L #Scale_Max ITD DTR T #_Scale_Max_R L #Raw L #Raw_Min -R T #_temp_real // Scale_Max - Scale_Min L #_Scale_Max_R L #_Scale_Min_R -R //(Raw - Raw_Min) * (Scale_Max - Scale_Min) L #_temp_real *R T #_temp_real // Raw_Max - Raw_Min L #Raw_Max L #Raw_Min -R T #_temp_real2 //(Raw - Raw_Min) * (Scale_Max - Scale_Min) / (Raw_Max - Raw_Min) L #_temp_real L #_temp_real2 /R //(Raw - Raw_Min) * (Scale_Max - Scale_Min) / (Raw_Max - Raw_Min) + Scale_Min L #_Scale_Min_R +R T #_Output //Convert scaled output to integer L #_Scaled_R RND T #Scaled V y l chng trnh gi thc t cc bn tham kho

n y cc bn nu tinh s thy hai chng trnh sao m ging nhau th. Admin s khng tit l b mt ny ra m mi ngi cungd suy ngh thm nh. Nu c ai khng hiu v mun bit b mt l g th admin s bt m sao vi tun na Cng ging vi cng thc A_in = ((A_max - A_min)*(D_out - D_min)) / (D_max - D_min) + A_min. Anh i, Sao gi tr Raw_min li bng -16384 v Raw_max = 16384 v Scale_min li = 1.500000e + 003 v Scale_max = 1.500000e + 003 vy anh? Cho em Th nht cng thc no th chn l vn ch c mt v l duy nht nu n l chn l. Cho nn chng qua mi ngi trin khai mt cch khc nhau m thi. Th hai l trong bi trn anh ni rt r rng, khng phi module no cng l 27648 v khng phi lc no cng dng ci gi tr ny. Ty tng n dng c th cho nn khi anh lm vic mi vit chng trnh ny ti u ha cho cng vic ca anh. Ci hm trn em thy anh ang dng i tn s tnh ton t feedback encoder c v ca motor. ci motor drive (Bin tn) n u c hiu 50Hz l ci g u, nhng nu mnh ch cho n l tao mun my chy maximum vn tc v mnh ci cho bin tn maximum vn tc ca ci motor l 50Hz, vy l cu cu s chy 50Hz v mnh c c vn tc mong mun nhng n s chy vi con s l 1500 m. Khi em i lm s cn nhiu vn hn na. ba no anh cho mt v d hc m anh lm thc t s th v hn nhiu. Cch tnh
Cch chuyn t tn hiu tng t vo/ra l ging nhau vi mi module thi. C khc l khc phn gii v gii gi tr thi. Module tng t khc module s l n dng x l gi tr ch khng phi x l trng thi. Do kiu bin l dng byte, word, double word thay v dng bit nh module s. Mi module c 1 phn gii ring (resolution), v d 8 bit, 12 bit, 32 bit, v.v v 1 gii gi tr (range, v d 0=10V, 4-20mA, 0-20mA). Khi nhn 1 gi tr t cm bin, n s s ha gi tr da trn range v resolution ca n (v PLC dng thng tin s cho mi qu trnh x l bn trong). Value = Input* (2 m n-1)/(max range-min range); n: phn gii tnh theo bit Trong (max range-min range)/(2 m n-1) l gi tr tng ng vi 1 bit. Gi tr s c lm trn di dng s nguyn. Sai s do lm trn s ni ln phn gii l cao hay thp. V d nh. Bn o 1 i lng no , cm bin bin i thnh gi tr in p l 3V. Lc ny bn phi dng u vo tng t c di 0-10V nhn tn hiu. Gi s phn gii ca module tng t l 8 bit. Gi tr m PLC tnh ra s l: Value = 3*(2 m 8-1)/ (10-0)=3*255/10=76.5, lm trn ln s l 77. Gi tr digital m PLC s s dng cho cc qu trnh tnh ton bn trong s l 01001101. Sai s l 0.5*=0.5*10/(2 m 8-1) Nu phn gii ca bn l 11 bit th Value s l 614.1, lm trn l 614. Sai s l 0.1*10/(2 m 11-1). R rng l phn gii cng cao th sai s cng t. (V th nn chn module vo ra phi rt ch n phn gii, v nh kt ni ng vi gii gi tr ca u vo ra, ng cm tn hiu in p vo IO c di 020mA).

Cch c d liu Analog: + n cc: ng vo thay i 1 n v, AIWxx thay i 8 n v + Lng cc: ng vo thay i 1 n v, AIWxx thay i 16 n v. iu ny c ngha l g.?? Con s 32,000 Trong module Analog n c ngha l g. Nu l 2^15 th l 32768. Con s ny s tri di 15bit nh phn. Nhng trong hnh m mnh c c th n ch c 12bit data ng vo. Cn 4 s 0 4 bit thp th b. Vy nu ch tnh data l 12bit th lm sao ra c con s 32,000.

You might also like