最近在研究一臺(tái)磨床,上磨盤需要有一定的傾斜角,本文闡述了利用三個(gè)位移傳感器通過測(cè)量位移轉(zhuǎn)換成角度并界面化,分享給大家。
正向兩個(gè)位移傳感器,側(cè)面方向一個(gè)位移傳感器。主要的思路為:正向兩個(gè)位移傳感器取平均值作為正向位移,與側(cè)向位移傳感器組成三角函數(shù)關(guān)系,通過arctan算出夾角,內(nèi)部紅色光標(biāo)設(shè)置成x/y偏移變量,如圖大圓半徑為100,對(duì)應(yīng)x偏移量為sina*100,對(duì)應(yīng)y偏移量為cosa*100。這樣不但可以直觀的觀察角度,而且更能直觀的觀察紅色光標(biāo)的位置。附代碼如下:
/////////位移傳感器數(shù)值整定
call fc 105
in :=db41.dbw232
hi_lim :=2.000000e+000
lo_lim :=0.000000e+000
bipolar:=false
ret_val:=#_retval
out :=#_dist_s_kipp_p2
call fc 105
in :=db41.dbw234
hi_lim :=2.000000e+000
lo_lim :=0.000000e+000
bipolar:=false
ret_val:=#_retval
out :=#_dist_s_dkipp_p3
call fc 105
in :=db41.dbw230
hi_lim :=2.000000e+000
lo_lim :=0.000000e+000
bipolar:=false
ret_val:=#_retval
out :=#_dist_s_dreh_p1
///////////////////////////////////
////////數(shù)值校正
l #_dist_s_dreh_p1
l #_zero_val_s_dreh_p1
-r
l db34.dbd 274
*r
negr
t #_skal_dist_sensor_dreh
l #_dist_s_kipp_p2
l #_zero_val_s_kipp_p2
-r
l db34.dbd 278
*r
negr
t #_skal_dist_sensor_kipp
l #_dist_s_dkipp_p3
l #_zero_val_s_dkipp_p3
-r
l db34.dbd 278
*r
negr
t #_skal_dist_sensor_dkipp
l #_skal_dist_sensor_kipp
l #_skal_dist_sensor_dkipp
+r
l 2.000000e+000
/r
t #_skal_mwert_kipp_dkipp
//////////////////////////////////////////////////////
////////清零操作
a db34.dbx 268.0
a db41.dbx 23.7
jcn n4_1
l #_dist_s_dreh_p1
t #_zero_val_s_dreh_p1
l #_dist_s_kipp_p2
t #_zero_val_s_kipp_p2
l #_dist_s_dkipp_p3
t #_zero_val_s_dkipp_p3
r db34.dbx 268.0
n4_1: nop 0
l #_skal_mwert_kipp_dkipp
l 0.000000e+000
>=r
s #iv_jump1 //positiv
l #_skal_mwert_kipp_dkipp
l 0.000000e+000
r #iv_jump1 //neg.
l #_skal_dist_sensor_dreh
l 0.000000e+000
>=r
s #iv_jump2 //pos.
l #_skal_dist_sensor_dreh
l 0.000000e+000
r #iv_jump2 //neg.
l #_skal_dist_sensor_dreh
l 0.000000e+000
==r
jcn n5e
l 1.000000e-006
t #_skal_dist_sensor_dreh
n5e: nop 0
//////////////////////////////////////////////////////
///////四個(gè)象限,第一象限0-90°
a #iv_jump1
a #iv_jump2
jcn e51
l #_skal_mwert_kipp_dkipp
l #_skal_dist_sensor_dreh
/r
atan
t #_temp_winkel_verh_y_x //pos winkel (rad)
l 3.140000e+000
/r
l 1.800000e+002
*r
t #_vi_winkel_a
l #_temp_winkel_verh_y_x
cos
l 1.000000e+002 //hmi畫的半徑
*r
rnd
t #_vi_engstestelle_x
l #_temp_winkel_verh_y_x
sin
l 1.000000e+002
*r
rnd
t #_vi_engstestelle_y
e51: nop 0
/////////位移傳感器數(shù)值整定
call fc 105
in :=db41.dbw232
hi_lim :=2.000000e+000
lo_lim :=0.000000e+000
bipolar:=false
ret_val:=#_retval
out :=#_dist_s_kipp_p2
call fc 105
in :=db41.dbw234
hi_lim :=2.000000e+000
lo_lim :=0.000000e+000
bipolar:=false
ret_val:=#_retval
out :=#_dist_s_dkipp_p3
call fc 105
in :=db41.dbw230
hi_lim :=2.000000e+000
lo_lim :=0.000000e+000
bipolar:=false
ret_val:=#_retval
out :=#_dist_s_dreh_p1
///////////////////////////////////
////////數(shù)值校正
l #_dist_s_dreh_p1
l #_zero_val_s_dreh_p1
-r
l db34.dbd 274
*r
negr
t #_skal_dist_sensor_dreh
l #_dist_s_kipp_p2
l #_zero_val_s_kipp_p2
-r
l db34.dbd 278
*r
negr
t #_skal_dist_sensor_kipp
l #_dist_s_dkipp_p3
l #_zero_val_s_dkipp_p3
-r
l db34.dbd 278
*r
negr
t #_skal_dist_sensor_dkipp
l #_skal_dist_sensor_kipp
l #_skal_dist_sensor_dkipp
+r
l 2.000000e+000
/r
t #_skal_mwert_kipp_dkipp
//////////////////////////////////////////////////////
////////清零操作
a db34.dbx 268.0
a db41.dbx 23.7
jcn n4_1
l #_dist_s_dreh_p1
t #_zero_val_s_dreh_p1
l #_dist_s_kipp_p2
t #_zero_val_s_kipp_p2
l #_dist_s_dkipp_p3
t #_zero_val_s_dkipp_p3
r db34.dbx 268.0
n4_1: nop 0
l #_skal_mwert_kipp_dkipp
l 0.000000e+000
>=r
s #iv_jump1 //positiv
l #_skal_mwert_kipp_dkipp
l 0.000000e+000
r #iv_jump1 //neg.
l #_skal_dist_sensor_dreh
l 0.000000e+000
>=r
s #iv_jump2 //pos.
l #_skal_dist_sensor_dreh
l 0.000000e+000
r #iv_jump2 //neg.
l #_skal_dist_sensor_dreh
l 0.000000e+000
==r
jcn n5e
l 1.000000e-006
t #_skal_dist_sensor_dreh
n5e: nop 0
//////////////////////////////////////////////////////
///////四個(gè)象限,第一象限0-90°
a #iv_jump1
a #iv_jump2
jcn e51
l #_skal_mwert_kipp_dkipp
l #_skal_dist_sensor_dreh
/r
atan
t #_temp_winkel_verh_y_x //pos winkel (rad)
l 3.140000e+000
/r
l 1.800000e+002
*r
t #_vi_winkel_a
l #_temp_winkel_verh_y_x
cos
l 1.000000e+002 //hmi畫的半徑
*r
rnd
t #_vi_engstestelle_x
l #_temp_winkel_verh_y_x
sin
l 1.000000e+002
*r
rnd
t #_vi_engstestelle_y
e51: nop 0
////////////////////////////////////////////////
////////其他三個(gè)象限同理。