不用byte打包數(shù)據(jù),多此一舉,直接移位就行,組輸出范圍不夠擴(kuò)一下。
IF a_num_test1>=0 THEN
b_num_test1:=0;
c_dnum_test1:=BitLShDnum(NumToDnum(b_num_test1),12);
c_dnum_test1:=BitOrDnum(c_dnum_test1,NumToDnum(a_num_test1));
d_num_test1:=DnumToNum(c_dnum_test1);
SetGO io_gout_num,d_num_test1;
ELSE
b_num_test1:=1;
c_dnum_test1:=BitLShDnum(NumToDnum(b_num_test1),12);
e_num_test1:=Abs(a_num_test1);
c_dnum_test1:=BitOrDnum(c_dnum_test1,NumToDnum(e_num_test1));
d_num_test1:=DnumToNum(c_dnum_test1);
SetGO io_gout_num,d_num_test1;
ENDIF
大概這么個(gè)意思,只需要一個(gè)信號,不需要分正負(fù)兩種信號輸出。但是相當(dāng)于做了個(gè)編碼,得在PLC端解碼。