danwei
級別: 略有小成
|
三菱MX通訊控件 ReadDeviceBlock參數(shù)怎么給,為什么讀取的軟元件類型跟地址寫進(jìn)去總是報(bào)錯(cuò) 單單一個(gè)字母入"m"時(shí)就不報(bào) axActProgType1.ReadDeviceBlock("m" , b, out arry[0]); 求指導(dǎo) |
---|---|
|
gzcjx555
QQ 296686949
級別: 工控俠客
|
圖片:
不知道你是否有手冊?有沒有看過手冊 |
|
---|---|---|
|
danwei
級別: 略有小成
|
看過手冊了,C# 用這個(gè)MX時(shí) szDevice這個(gè)參數(shù),糊涂了, |
---|---|
|
worker02
級別: 略有小成
|
Procedure TForm1.Read_Data1;///////順序讀取///////////////////// Var R_Msg,Re_Add,ReData_Len,I,Col,Row,D8:Integer; Re_Data:Array of LongInt; Sen_Add:WideString; str,Str1:String; Str_Len:Integer; begin Re_Add :=StrToInt(Edit1.Text);//取出起始地址值 ReData_Len:=StrToInt(Edit2.Text);//取出數(shù)據(jù)長度 IF(ComboBox1.Text='X')OR(ComboBox1.Text='Y') then //判定是為8進(jìn)制類型設(shè)備X,y最大獲取范圍 begin IF (ReData_Len+Re_Add)>128 then ReData_Len:=128-Re_Add; end; FOR I:= 0 To ReData_Len-1 DO begin IF(ComboBox1.Text='X')OR(ComboBox1.Text='Y')Then //判定是為8進(jìn)制類型設(shè)備X,y最大獲取范圍 D8:=DectoD8(Re_Add+I) else D8:=Re_Add+I; IF I=0 THEN Sen_Add:=ComboBox1.Text+IntToStr(D8) else Sen_Add:=Sen_Add+#10+ComboBox1.Text+IntToStr(D8); end; IF (Re_Add>=0)And(ReData_Len>0)then Begin SetLength(Re_Data,ReData_Len); IF RadioButton4.Checked=True Then R_Msg:=FX_Com.ReadDeviceRandom(Sen_Add,ReData_Len,Re_Data[0]) else R_Msg:=FX_Usb.ReadDeviceRandom(Sen_Add,ReData_Len,Re_Data[0]); end ELSE IF Re_Add<0 then ShowMessage('起始地址有誤') else ShowMessage('長度填寫有誤碼'); IF R_Msg=0 Then Stat_Bar.Panels.Items[7].Text:='接收成功' else Begin Stat_Bar.Panels.Items[7].Text:='接收失敗錯(cuò)誤代碼:'+#13+IntTOstr(R_Msg); Exit; end; FOR I:=0 TO High(Re_Data) DO Begin IF(ComboBox1.Text='X')OR(ComboBox1.Text='Y') then//判定是為8進(jìn)制類型設(shè)備 begin D8:=DectoD8(Re_Add+I); Col:= (I+Re_ADD) MOD 8+1; Row:= (I+Re_ADD) DIV 8+1; end ELSE BEGIN Col:= (I+Re_ADD) MOD 10+1; Row:= (I+Re_ADD) DIV 10+1; end; IF Dec.Checked then StringGrid1.Cells[Col,Row]:=IntToStr(Re_Data[I]) else IF Hex.Checked then StringGrid1.Cells[Col,Row]:=IntToHex(Re_Data[I],2) else IF Bin.Checked then begin str:=IntTostr(Re_Data[I]); Str_Len:=Length(str); str:=IntToBin(Re_Data[I],Str_Len*4); Str1:='1'; Str_Len:=Pos(Str1,str); Delete(Str,1,Str_Len-1); IF str='0000' then str:='0' else str:=str; StringGrid1.Cells[Col,Row]:=str; end; StringGrid1.Font.Name:='宋體'; stringGrid1.Font.Size:=13; Form1.Add_tpye; end; end; 我是用DELPHI寫,用的接口是USB,沒有問題,測試過。 |
---|---|
|