三菱PLC-FX編程口通信協議及通信實操

很多控制都採用FX系列PLC,也非常簡單易學。但如果說,我們想用上位機與PLC通信,好不好弄呢?比如VB,LabView,再簡單點:串口助手。FX編程口協議沒有公開,最近做了個CB與FX3U的系統,所以和大家分享一下。

CB軟件界面涉及公司機密,就不便放出來給大家看,用串口調試助手V2.1代替,一樣的道理。關於上位機的學習,大家可以網上下載點資料來參考。下面就給出整個測試過程,並對部分協議地址做詳盡的見解。

準備:FX3U(FX系統的均可)、串口調試助手V2.1、SC-09通信線(或者SC-09-USB,我用的是SC-09-USB,因為串口助手幫我們完成USB轉串口這部分,如果用VB或其他上位機通信,需要用SC-09通信線,要求電腦有DB9串口)

三菱PLC-FX編程口通信協議及通信實操

串口助手

三菱PLC-FX編程口通信協議及通信實操

FX-PLC


三菱PLC-FX編程口通信協議及通信實操

SC-09-USB通信線


三菱PLC-FX編程口通信協議及通信實操

SC-09-DB9通信線


三菱PLC-FX編程口通信協議及通信實操

用SC-09-USB通信線一頭連接電腦、一頭連接編程口

一、通信傳輸格式設置

1位起始位、7位數據位、偶校驗、1位停止位,波特率9600,傳輸字符格式為ASCII碼。所以串口助手COM設置如下(PLC不用設置):

三菱PLC-FX編程口通信協議及通信實操

一、通信指令

PLC只能對上位機發出的指令做回答,不能主動命令上位機。編程口通信有4條指令,代碼分別如下:

三菱PLC-FX編程口通信協議及通信實操

PLC收到上位機指令後,做出回答如下

三菱PLC-FX編程口通信協議及通信實操

二、通信格式

三菱PLC-FX編程口通信協議及通信實操

三、元件地址

那地址是怎麼得來的呢?其實是可以查表得來。

三菱PLC-FX編程口通信協議及通信實操

表格1 只列出部分位元件的地址

定時器T、計數器C的地址,大家可以去網上收集資料,後面我測試沒用到這些類型的元件,所以就沒有列出這些地址表。下面給出寄存器D的地址值,範圍是D0-D511,給出框架,可按規律自己補齊地址。

三菱PLC-FX編程口通信協議及通信實操

表格2 一般寄存器D的部分元件地址表

適用強制(置位,復位)指令是適用的地址與表格1是不一樣的,這點要注意。為了大家更加清楚,下面給出Y、M置位/復位的元件地址,其他的S、X、T、C這部分地址,網上自己搜搜。

三菱PLC-FX編程口通信協議及通信實操

表格2 強制Y、強制M的部分位元件地址表

四、通信實操

將寫好的PLC程序灌入PLC中,測試PLC程序如下:

三菱PLC-FX編程口通信協議及通信實操

GX Work2創建的測試程序

上電,RUN,PLC的狀態如下:

三菱PLC-FX編程口通信協議及通信實操

只有Y31的狀態為1,其餘的為0

1、通信測試

串口助手發送05h,PLC回覆06h,則連接正常。若回覆15h,則下位機不存在。

(注意:在串口助手與PLC通信過程中,請確認GX Work2已關閉工程)

三菱PLC-FX編程口通信協議及通信實操

通信正常

2、寫指令(CMD內容為31h)

實操:使Y0~Y7的狀態為 0 1 0 1 1 0 1 0 (16進製為5A,轉為ASCII碼為35h 41h)

三菱PLC-FX編程口通信協議及通信實操

使Y0~Y7的狀態為 0 1 0 1 1 0 1 0 的指令格式

串口助手發送如下:

三菱PLC-FX編程口通信協議及通信實操

PLC狀態如下:

三菱PLC-FX編程口通信協議及通信實操

Y0-Y7的指示燈,符合預期

PLC回覆狀態如下:

三菱PLC-FX編程口通信協議及通信實操

3、讀指令(CMD內容為30h)

實操:讀取D11、D12的值。(D11含2個字節,D12含2個字節,共4個字節)

三菱PLC-FX編程口通信協議及通信實操

讀取D11、D12的值的指令格式 D11、D12的值以16進制顯示

三菱PLC-FX編程口通信協議及通信實操


三菱PLC-FX編程口通信協議及通信實操

D11、D12現值(16進制):0BC3、01FA。從上圖的分析,可知,已經正確從PLC讀取D11 D12的值。

4、強制ON指令(CMD內容為37h)&&強制OFF指令(CMD內容為38h)

實操1:強制M0為ON

三菱PLC-FX編程口通信協議及通信實操

強制M0為ON的指令格式

實操2:強制M0為OFF

強制M0為OFF的指令格式

三菱PLC-FX編程口通信協議及通信實操


三菱PLC-FX編程口通信協議及通信實操


分享到:


相關文章: