I see , In Delphi ,Real Type use 8 Bytes.In PLC ,real Type use 4 Bytes
I have successed , use reverse method,But I want to write "Real" type ,failed,my code as below: procedure TForm1.btn4Click(Sender: TObject); var realarr:array[0..0] of real; begin realarr[0]:=StrToFloat(edt1.Text); S7.Reverse(@realarr[0],S7Real); plclient.WriteArea(S7AreaDB,1,3000,1,S7WLReal,@realarr[0]); end; Why?
TS7RealArr=array[0..24] of Real; PS7RealArr=^TS7RealArr;
I Write VD3000 to 3.5 ,but VD3000 show 0.0
I have successed , use reverse method,But I want to write "Real" type ,failed,my code as below: procedure TSiemensEth.DOWords(Area, DBNumber, Start, Amount: Integer; UserData: Array of Word); var APS7DP:PS7DataParam; APS7WordArr:PS7WordArr; i:Integer; begin New(APS7DP); New(APS7WordArr); for i:=0 to Amount-1 do begin APS7WordArr^[i]:=UserData[i]; S7.Reverse(@APS7WordArr^[i],S7Word) ; end; APS7DP^.Area:=Area; APS7DP^.DbNumber:=DBNumber; APS7DP^.Start:=Start; APS7DP^.Amount:=Amount; APS7DP^.WordLen:=S7WLWord;...
I want to write vw1506 to 1,but I find display 256 ,why ? procedure TfrmMain.cxbtn_AutoRunClick(Sender: TObject); var aword:Word; begin //VW1506 aword :=1; DataMoudle.PLCClients[0].instance.WriteArea(S7AreaDB,1,1506,1,S7WLWord,@aword); end;
I don't find opCode explain