希望有人能幫我解答…我已經困擾好久了… |
尚未結案
|
steve6912
一般會員 發表:5 回覆:14 積分:3 註冊:2006-07-05 發送簡訊給我 |
現在在研究怎麼將西門子S7-300的數據傳到BCB來顯示…用過VB.NET跟DELPHI…都可以…唯獨就是BCB搞不出來… 以下是DELPHI的原始碼… procedure TForm1.Timer1Timer(Sender: TObject); procedure TForm1.Button1Click(Sender: TObject); end. 其中的S7DATA1是西門子S7軟體衍生出來的控制項… 不知道有沒有人能幫我轉成BCB碼…因為我怎麼轉…就是沒東西…希望大家幫個忙…謝謝大家… |
chiehjj
初階會員 發表:21 回覆:63 積分:26 註冊:2002-12-31 發送簡訊給我 |
|
steve6912
一般會員 發表:5 回覆:14 積分:3 註冊:2006-07-05 發送簡訊給我 |
我的程式碼嗎…如果是delphi就如上面所po的…如果是bcb的話如下… OleVariant sa; 以上是寫的階段…這一階段是成功的…以下是讀的階段…這一段就無法讀出我要的值了… VARIANT sa; 問號的地方是因為我還不知道該放什麼東西進去…順便寫一下他的函式需求… WriteVariable(wchar_t*,tagVARIANT,long) ReadVariable(wchar_t*,tagVARIANT*,long*,long) 這是bcb的函式需求… 下面是delphi的需求… WriteVariable(WideString,OleVariant,Integer) ReadVariable(WideString,OleVariant,Integer,Integer) 麻煩回答一下了…謝謝^^ |
chiehjj
初階會員 發表:21 回覆:63 積分:26 註冊:2002-12-31 發送簡訊給我 |
|
steve6912
一般會員 發表:5 回覆:14 積分:3 註冊:2006-07-05 發送簡訊給我 |
|
steve6912
一般會員 發表:5 回覆:14 積分:3 註冊:2006-07-05 發送簡訊給我 |
|
chiehjj
初階會員 發表:21 回覆:63 積分:26 註冊:2002-12-31 發送簡訊給我 |
|
steve6912
一般會員 發表:5 回覆:14 積分:3 註冊:2006-07-05 發送簡訊給我 |
感謝你的回覆…我是讀出來的值不對…怎麼用都不對…
我貼一下二者所需的格式好了…(可是write的格式也不一樣…竟然可以寫= =?)
result:=S7Data1.ReadVariable(WideString,OleVariant,long,long)<----這是delphi的格式… result=S7Data1->ReadVariable(wchar_t*,tagVariant*,long*,long)<----這是bcb的格式… 再來是寫的格式…
result:=S7Data1.WriteVariable(WideString,OleVariant,Integer)<----這是delphi的格式… result=S7Data1->WriteVariable(wchar_t*,tagVariant,long)<----這是bcb的格式… 我的寫入程式…就如同之前所貼的…是可以正常寫入的…這就表示我在wchar_t*的宣告應該沒有錯…
而所寫入的值跟我進西門子s7 scout(即他本身的opc server程式)裡面的值是一樣的…而且程式這邊一變動…s7 scout裡也會跟著變動… 我現在是覺得…我對應的目標應該是正確的…因為既然可寫入…表示目標正確…但是對於tagVARIANT*跟long*這二個項目…我就不是很了解了…我的程式愈改愈少東西…現在的程式如下: Variant sa;
long* sb;
long sc=100;
long sd=1;
sb=&sd;
*sb=sd;
long se;
se=S7Data1->ReadVariable(StringToOleStr(S7:[S7_LINK1|VFD1|CP_H1_1:]DB98,CHAR0,1"),sa,sb,sc);
我不知道這樣把sb宣告成固定為1的語法對不對…當我輸出sb的時候…是為1沒錯…如果sb也沒問題…就是sa有問題了…
格式前面的result就是我程式中的se…說明中有提到…如果se為零就是沒有錯誤…如果真是這樣…
那我輸出se時…是為零沒錯…
那或許就是sa的格式有錯…可是我還是搞不懂tagVARIANT*的*所代表的意義…我如果用OleVariant跟Variant來宣告…都是可以的…連用VARIANT*來宣告也可以…我被愈搞愈混了…不知道該怎麼輸出…格式才會正確呢…
麻煩chiehjj幫我回答一下了…感謝你的回覆^^
|
steve6912
一般會員 發表:5 回覆:14 積分:3 註冊:2006-07-05 發送簡訊給我 |
|
chiehjj
初階會員 發表:21 回覆:63 積分:26 註冊:2002-12-31 發送簡訊給我 |
如果您還沒有試出來, 建議您到西門子的網站,那裡會有專家幫您解答 |
steve6912
一般會員 發表:5 回覆:14 積分:3 註冊:2006-07-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |