天天看點

.Net Micro Framework研究—序列槽部署的困惑

<a target="_blank" href="http://blog.51cto.com/attachment/201005/100131597.jpg"></a>

MFDeploy Ping失敗

<a target="_blank" href="http://blog.51cto.com/attachment/201005/100140499.jpg"></a>

VS2005部署失敗

<a target="_blank" href="http://blog.51cto.com/attachment/201005/100147557.jpg"></a>

MFDeploy和VS2005用序列槽監控軟體檢視相關參數,如上圖,你會發現序列槽參數為:115200,EVEN(偶校驗)。

幸好iPac-9302自帶的CD光牒軟體裡有一個SJJ_COMM Lite序列槽軟體,可以和開發闆進行通信。

<a target="_blank" href="http://blog.51cto.com/attachment/201005/100155316.jpg"></a>

看的出來,通信是成功的,下面用序列槽監控軟體看看其通信參數。

<a target="_blank" href="http://blog.51cto.com/attachment/201005/100213382.jpg"></a>

赫然是115200,NONE(無校驗)。

上圖是我的開發環境,剛開始是用序列槽線直接和iPac-9302的序列槽相連,通信無法成功。用什麼辦法解決該問題啊?自己編寫一個MFDeploy或修改VS2005的序列槽參數又不現實,隻好用工控的辦法解決了,PC機先把資料發送到PLC的序列槽0(序列槽參數是:115200,偶校驗),PLC接收後,把資料通過序列槽1(序列槽參數是:115200,無校驗)發送出去,反過來相反。已經快兩年沒有編寫PLC的程式了,幸好程式比較簡單。

主程式:

LD     SM0.1

//端口0

MOVB   16#19, SMB30                //115200 偶校驗99

ATCH   COM0, 8

//端口1

MOVB   16#19, SMB130               //115200 無校驗

ATCH   COM1, 25

//發送資料區首位址VB100

MOVB   1, VB100                    //僅發送一個資料

MOVB   1, VB200                    //僅發送一個資料

//中斷有效

ENI

------------------

中斷程式0:

LD     SM0.0

MOVB   SMB2, VB201                 //從端口0接收資料

XMT    VB200, 1                    //向端口1轉發資料

中斷程式1:

MOVB   SMB2, VB101                 //從端口1接收資料

XMT    VB100, 0                    //向端口0轉發資料

<a target="_blank" href="http://blog.51cto.com/attachment/201005/100249839.jpg"></a>

很可惜的是在高波特率情況下,接發大量的資料由于PLC處理能力有限,會丢失個别資料,是以MFDeploy和VS2005依舊無法通信成功。

隻能期待微軟和廠家來解決這個問題了。

本文轉自yefanqiu51CTO部落格,原文連結:http://blog.51cto.com/yfsoft/321286,如需轉載請自行聯系原作者

繼續閱讀