回覆列表
  • 1 # 工控程式設計

    這個功能會涉及哪些知識。

    首先得了解通訊硬體上的一些常識。

    比如常見到的通訊方式還是很多的,有RS232,RS485,USB等等。

    可以事先對這些常用的通訊作一個瞭解。

    自己硬體上的埠確認是RS232還是RS485,或是網口。

    得保證通訊的兩個硬體能夠連線上。

    例如我們常會見到PLC的埠為RS232序列口,

    但電腦上只有USB口。

    這樣就得透過轉換才能將兩者連線起來。

    某寶會有USB轉RS232資料線。

    RS485也是極為常見到的通訊方式。

    也有對應的RS232,RS485互轉模組或資料線,如下圖。

    這是硬體通訊上,我們要了解與注意的。

    然後是建議先熟悉一種電腦軟體程式設計工具。

    微軟系統上使用的話,可以使用它家的C#或MFC,

    可以下載與安裝vs2010來看看。

    C#或MFC都可以很方便的編寫出通訊程式。

    這方面的程式設計學習會是一個比較系統的學習過程。

    如果沒有硬性限制的話,

    C#可以先看看,比較好上手。

    最後是從官網等渠道準備PLC的通訊手冊,瞭解其通訊幀的格式。

    比如使用MFC或C#編寫軟體來接收PLC指令。

    通訊程式碼得根據通訊協議來編寫,

    不同廠家的PLC,通訊協議並沒有統一標準,

    但電腦軟體編寫,靈活性是很強的,

    MFC或C#都能夠編寫程式碼,靈活應對。

    例如我前面錄製的教程:三菱PLC與上位機串列埠通訊。

    要向PLC傳送什麼指令?PLC又會回饋什麼指令?

    X,Y,D暫存器資料讀寫時,PLC傳送的指令格式是什麼?

    軟體如何解析?

    等等一系列問題都得參考通訊手冊。

    這裡就不貼出程式碼了。

    以上僅是一些建議與分享。

  • 2 # 控制研究控

    我先來澄清一下你的問題中的概念!

    PLC的指令大多是用作處理本站點內的I/O資訊的,當和非本PLC站點的CPU,I/O或者儀表等,有資料交換的時候就需要用到通訊指令!一般就是send/receive收發這些!所以你說的PLC傳送的指令,其實應該是PLC透過傳送指令,傳送出一些資料資訊,然後你想用其他的軟體去接收到這PLC發出的這些資訊!---問題的根本其實是一個通訊問題!

    還是來說一些常規的PLC通訊知識點吧:

    應該說PLC通訊最常見的還是串列埠通訊,比如modbus RTU通訊。下圖是西門子200PLC中的2個指令:

    這個圖片中的XMT指令是傳送指令,RCV是接收指令。這裡的port就是PLC上的通訊口,比如prot0。TBL就是你想傳送或者接收資料的一串連續資料地址,如果是XMT,那麼就是將這串資料傳送出去!

    plc透過串列埠傳送出去的資料,通常要監控發出的數值到底是什麼的時候,就會想到用串列埠除錯助手這樣的工具,當然這個串列埠除錯助手這個工具,你可以用C, VB, labview等你熟悉的程式設計軟體自己開發一個出來這樣的功能就能監控到PLC發出的資料了!

    還是看一個我之前做的測試吧:

    這個圖片就是我利用XMT指令透過通訊口0(port0),把VB101-VB108中的8個數據傳送出去,又利用串列埠除錯助手接收到的截圖!可以看到我傳送的資料是 1 3 0 0 0 2 196 11,串列埠除錯助手接收到的資料是01 03 00 00 00 02 C4 0B,這兩串資料是一樣的,不過是一個是十進位制顯示,一個是16進位制顯示!

    這個例子就實現了電腦上執行的串列埠除錯助手軟體,監控到我PLC串列埠發出的資料,實現了你的題目要求!當然,這是最簡單實現方法!但是,思路和方向也就是這樣了,PLC提供了一些通訊指令,比如網路通訊的和串列埠通訊的,當然有一些特殊的協議是不開放的,在知道協議報文的情況下,自己開發一個介面來實現通訊和對這些報文的解析就可以了!

  • 中秋節和大豐收的關聯?
  • 噻呋嘧菌酯能和啶蟲咪混用嗎?