很多控制都採用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編程口通信協議及通信實操](http://p2.ttnews.xyz/loading.gif)
串口助手
![三菱PLC-FX編程口通信協議及通信實操](http://p2.ttnews.xyz/loading.gif)
FX-PLC
SC-09-USB通信線
SC-09-DB9通信線
用SC-09-USB通信線一頭連接電腦、一頭連接編程口
一、通信傳輸格式設置
1位起始位、7位數據位、偶校驗、1位停止位,波特率9600,傳輸字符格式為ASCII碼。所以串口助手COM設置如下(PLC不用設置):
一、通信指令
PLC只能對上位機發出的指令做回答,不能主動命令上位機。編程口通信有4條指令,代碼分別如下:
PLC收到上位機指令後,做出回答如下
二、通信格式
三、元件地址
那地址是怎麼得來的呢?其實是可以查表得來。
表格1 只列出部分位元件的地址
定時器T、計數器C的地址,大家可以去網上收集資料,後面我測試沒用到這些類型的元件,所以就沒有列出這些地址表。下面給出寄存器D的地址值,範圍是D0-D511,給出框架,可按規律自己補齊地址。
表格2 一般寄存器D的部分元件地址表
適用強制(置位,復位)指令是適用的地址與表格1是不一樣的,這點要注意。為了大家更加清楚,下面給出Y、M置位/復位的元件地址,其他的S、X、T、C這部分地址,網上自己搜搜。
表格2 強制Y、強制M的部分位元件地址表
四、通信實操
將寫好的PLC程序灌入PLC中,測試PLC程序如下:
GX Work2創建的測試程序
上電,RUN,PLC的狀態如下:
只有Y31的狀態為1,其餘的為0
1、通信測試
串口助手發送05h,PLC回覆06h,則連接正常。若回覆15h,則下位機不存在。
(注意:在串口助手與PLC通信過程中,請確認GX Work2已關閉工程)
通信正常
2、寫指令(CMD內容為31h)
實操:使Y0~Y7的狀態為 0 1 0 1 1 0 1 0 (16進製為5A,轉為ASCII碼為35h 41h)
使Y0~Y7的狀態為 0 1 0 1 1 0 1 0 的指令格式
串口助手發送如下:
PLC狀態如下:
Y0-Y7的指示燈,符合預期
PLC回覆狀態如下:
3、讀指令(CMD內容為30h)
實操:讀取D11、D12的值。(D11含2個字節,D12含2個字節,共4個字節)
讀取D11、D12的值的指令格式 D11、D12的值以16進制顯示
D11、D12現值(16進制):0BC3、01FA。從上圖的分析,可知,已經正確從PLC讀取D11 D12的值。
4、強制ON指令(CMD內容為37h)&&強制OFF指令(CMD內容為38h)
實操1:強制M0為ON
強制M0為ON的指令格式
實操2:強制M0為OFF
強制M0為OFF的指令格式
閱讀更多 煙雨003 的文章