三菱Q系列串列埠通訊協議支援功能mobus協議

這次專案用到了稱重控制器,客戶要求能採集稱重資料,所以需要用通訊方式採集。這款控制器是支援modbus協議的。

三菱Q系列串列埠通訊協議支援功能mobus協議

接線是RS232方式,所以PLC模組選的是QJ71C24N-R2,帶兩個232串列埠。modbus實際上可以一個串列埠接多個從站的,也就是可以一個串列埠並連線兩個以上控制器。但是我這個模組本身有兩個串列埠(一個串列埠的沒得賣)。乾脆就分開接線,一個控制器接一個串列埠,這樣程式可以複製而且不需要搞那麼多變數,程式設計簡單些。

三菱Q系列串列埠通訊協議支援功能mobus協議

下面看接線下圖是手冊

三菱Q系列串列埠通訊協議支援功能mobus協議

實際接線是:T對PLC側232的2腳,R對3腳,CGD對5腳,PLC側的4腳和6腳短接,7腳和8腳短接。

三菱Q系列串列埠通訊協議支援功能mobus協議

看下手冊的通訊協議:

三菱Q系列串列埠通訊協議支援功能mobus協議

三菱Q系列串列埠通訊協議支援功能mobus協議

都是16進製表示

閹割版modbus 協議,只支援03功能碼(讀)和10功能碼(寫)。上圖的右下角

舉例了,只要傳送 01 03 00 01 00 02 95 CB,控制就會回傳 01 03 04 00 00 0A 0B BD 54。

返回的 00 00 0A 0B 就是重量,按下下面的公式換算就行了。

三菱Q系列串列埠通訊協議支援功能mobus協議

三菱Q系列串列埠通訊協議支援功能mobus協議

按照我以前RS232連掃碼槍的一貫做法,是直接設定結束符,然後選無順序協議的

很遺憾這裡不能這樣幹,因為傳送 01 03 00 01 00 02 95 CB 可以是固定的,返回的

01 03 04 00 00 0A 0B BD 54 的BD 54是不固定的,因為它的後兩個符號是CRC校驗碼,不是固定的,沒辦法設定一個固定的結束符使用無順序協議接收,所以這裡要用串列埠通訊模組的通訊協議支援功能。

首先PLC串列埠的引數設定如下:

三菱Q系列串列埠通訊協議支援功能mobus協議

萬能不變的預設波特率 9600(一般裝置都預設9600), 無校驗 ,資料為8,停止1 (一般簡稱N81 ),。

通訊協議設定那裡就是選擇“通訊協議”,設定好通訊協議號呼叫就行了。

如下圖所示開啟通訊協議支援工具

三菱Q系列串列埠通訊協議支援功能mobus協議

點選新建一個檔案

三菱Q系列串列埠通訊協議支援功能mobus協議

新增1號協議,如下所示,03就讀取的功能碼

三菱Q系列串列埠通訊協議支援功能mobus協議

右鍵更改為可編輯,這裡是套用它的結構,可以修改自己需要的內容。

三菱Q系列串列埠通訊協議支援功能mobus協議

按照下圖所示

三菱Q系列串列埠通訊協議支援功能mobus協議

D100 是要寫入01 (讀取的是1號從站),03是功能碼,D101 要寫入0001

D103要寫入0002 ,再加校驗碼(系統自動算出新增),意思是讀取1號從站的001開始的兩個(0002)位元組資料。

這裡就要偷懶的了,我只要讀取一個站資料,還是讀固定地址的資料,所以是不需要變數的,何必要透過寫入D100,D101 ,D102轉換呢,直接固定內容不香嗎?

直接右鍵-資料型別更改

三菱Q系列串列埠通訊協議支援功能mobus協議

改成固定資料

三菱Q系列串列埠通訊協議支援功能mobus協議

三菱Q系列串列埠通訊協議支援功能mobus協議

如下,自己改成傳送固定的01 03 00 01 00 02 +校驗碼(自動新增),省了程式設計的步驟。

三菱Q系列串列埠通訊協議支援功能mobus協議

傳送了對應內容控制器就返回資料,下面看設定接收(1)

老套路!接收的資料中01 03 04 是固定的,只有表示重量的4個符號是需要設定存放地址的,設定存在D404 –D405

三菱Q系列串列埠通訊協議支援功能mobus協議

接收(2)是用不到了,隨便設定個地址不報錯就行。

三菱Q系列串列埠通訊協議支援功能mobus協議

設定完寫入模組即可。

下面看PLC程式設計

三菱Q系列串列埠通訊協議支援功能mobus協議

直接間隔1S觸發一次1號協議就行了, 具體指令應用可以查手冊,不多講了。

接收到的資料在D404和D405,另行程式設計轉換就行了。

下面是動圖

三菱Q系列串列埠通訊協議支援功能mobus協議

指示燈亮得很歡快啊,說明一直在傳送接收資料

以上就是簡單接收寫串列埠模組的通訊協議支援功能,很方便吧。

下面連結是232的基礎講解,有興趣朋友可以看看