產(chǎn)品詳情
S7-1200 西門子 6ES7326-2BF10-0AB0 湖南代理商
硬件及軟件列表
設(shè)備名稱
|
設(shè)備型號
|
PS 307 |
6ES7 307-1EA00-0AA0 |
CPU 315-2DP |
6ES7 315-2AG10-0AB0 |
MMC |
6ES7 953-8LG11-0AA0 |
CP341 |
6ES7 341-1AH01-0AE0 |
Dongle |
6ES7 870-1AB01-0YA0 |
應(yīng)用CP341進(jìn)行 MODBUS協(xié)議通信時需要有Dongle的支持。在使用之前先將Dongle安裝在CP341模塊的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下圖所示:
長沙玥勵自動化設(shè)備有限公司(西門子系統(tǒng)集成商)長期銷售西門子S7-200/300/400/1200PLC、數(shù)控系統(tǒng)、變頻器、人機(jī)界面、觸摸屏、伺服、電機(jī)、西門子電纜等,并可提供西門子維修服務(wù),歡迎來電垂詢
聯(lián)系人:姚善雷 (銷售經(jīng)理)
手機(jī) :13874941405
QQ : 3464463681
地址:長沙市岳麓區(qū)雷鋒大道468號金科世界城16-3303室
長沙玥勵自動化設(shè)備有限公司(西門子系統(tǒng)集成商)長期銷售西門子S7-200/300/400/1200PLC、數(shù)控系統(tǒng)、變頻器、人機(jī)界面、觸摸屏、伺服、電機(jī)、西門子電纜等,并可提供西門子維修服務(wù),歡迎來電垂詢
聯(lián)系人:姚善雷 (銷售經(jīng)理)
手機(jī) :13874941405
QQ : 3464463681
地址:長沙市岳麓區(qū)雷鋒大道468號金科世界城16-3303室
圖1
注意:STEP7 V5.X軟件上,必須安裝如下軟件包才可進(jìn)行后續(xù)的組態(tài)配置。
組態(tài)和配置
1、打開上面創(chuàng)建的項(xiàng)目ptp,用鼠標(biāo)右鍵點(diǎn)擊項(xiàng)目名稱,選擇Insert New Object-> SIMATIC 300 Station,更改站的名稱為CP341 Modbus-S。
圖2
2、雙擊Hardware進(jìn)入硬件配置畫面,插入RACK、CPU315-2DP、CP341。
圖3
3、 雙擊CP341模板,點(diǎn)擊Parameter...,配置CP341參數(shù)。在Protocol選項(xiàng)中選擇MODBUS Slave。
圖4
4、雙擊Protocol下的信封圖標(biāo),配置MODBUS Slave參數(shù),點(diǎn)擊MODBUS-Slave按鈕。
圖5
- 步驟1:設(shè)置MODBUS從站地址,本例中設(shè)為2;
- 步驟2:設(shè)置MODBUS從站波特率,停止位,校驗(yàn)位等參數(shù);
- 接下來配置功能代碼所表示的參數(shù),具體參見下4圖
5、FC01,05,15:讀取、強(qiáng)制輸出位的狀態(tài);左邊的地址為信息傳送地址,右邊對應(yīng)西門子的PLC地址區(qū),即左邊地址從0~100對應(yīng)MODBUS地址區(qū)為00001~00101,對應(yīng)西門子數(shù)據(jù)區(qū)為M0.0~M12.4;101~200對應(yīng)MODBUS 地址區(qū)為00102~00201,對應(yīng)西門子數(shù)據(jù)區(qū)為Q0.0~Q12.3;從地址201~300,301~400對應(yīng)Modbus 地址區(qū)為00202~00301,00302~00401,對應(yīng)西門子數(shù)據(jù)區(qū)為Timer,Counter。
圖6
6、FC02讀取輸入數(shù)據(jù)位的狀態(tài),地址對應(yīng)如上文所述。
圖7
7、FC03,06,16組態(tài)輸出寄存器數(shù)據(jù)區(qū),對應(yīng)西門子數(shù)據(jù)區(qū)為DB塊。
圖8
8、FC04組態(tài)輸入寄存器數(shù)據(jù)區(qū),對應(yīng)西門子數(shù)據(jù)區(qū)同樣是DB塊。
圖9
9、設(shè)置寫參數(shù)的限制值。
圖10
10、如果選用的是RS422/485接口的CP341時,還需要設(shè)置接口類型,如下圖所示,其它參數(shù)均采用默認(rèn)設(shè)置。
圖11
11、配置完成后保存時會提示是否裝載驅(qū)動。
圖12
12、此時必須連接到實(shí)際的PLC,點(diǎn)擊Yes按鈕裝載驅(qū)動,裝載時CPU必須為STOP模式。驅(qū)動裝載完成后,如果再次裝載,STEP7會提示Driver already exists,配置完成后點(diǎn)擊“編譯保存”按鈕保存編譯硬件組態(tài),并確認(rèn)沒有錯誤。
圖13
編寫通信程序
1、將FB7,F(xiàn)B8添加到程序Blocks中,方法為雙擊OB1,打開OB1編程畫面,從庫Libraries->CP PtP->CP341中調(diào)用發(fā)送程序塊FB8和接收程序塊FB7,然后再從OB1中刪除。因?yàn)镸ODBUS從站通訊要用到這兩個功能塊。
2、調(diào)用MODBUS從站功能塊FB80,位置在Libraries->Modbus->Modbus ->FB80。分配背景數(shù)據(jù)塊DB80,將參數(shù)LADDR設(shè)為硬件組態(tài)中的起始邏輯地址256。
圖14
2、調(diào)用MODBUS從站功能塊,設(shè)置參數(shù)。
圖15
LADDR |
硬件組態(tài)中的起始邏輯地址,本例中為256 |
START_TIME |
超時初始化定時器,本例中為T1 |
START_TIME |
超時初始化時間值,本例中為1s |
OB_MASK |
外設(shè)訪問錯誤屏蔽位,本例中為M100.0 |
CP_START |
FB初始化始能位,本例中為M100.1 |
CP_START_FM |
CP_START初始化的上升沿位,本例中為M100.2 |
CP_START_NDR |
從CP寫操作位,本例中為M100.3 |
CP_START_OK |
初始化成功標(biāo)志,本例中為M100.4 |
CP_START_ERROR |
初始化失敗標(biāo)志,本例中為M100.5 |
ERROR_NR |
錯誤號,本例中為MW102 |
ERROR_INFO |
錯誤信息,本例中為MW104,可以查看Modbus Slave 手冊第10章 |
3、創(chuàng)建FC03,06,16功能代碼通訊數(shù)據(jù)塊DB1。
圖16
4、創(chuàng)建FC04功能代碼通訊數(shù)據(jù)塊DB2。
圖17
設(shè)備連接
本文檔使用的CP341的接口是RS232C,因此需要通過標(biāo)準(zhǔn)的RS232C電纜來連接CP341和計算機(jī)的串口,具體的電纜連接方法請查看CP341手冊B章節(jié)連接電纜部分(見:手冊、文檔和軟件鏈接部分)。
如果使用的CP341是RS485接口的模塊,需要使用RS232C/RS485轉(zhuǎn)換器。
通信測試
前面使用Step7 V5.5軟件已經(jīng)將通信CP341的通信工作做完,下面進(jìn)行通信測試。這里使用串口通訊測試軟件Modscan32軟件來測試CP341和計算機(jī)的通信,步驟如下
1、首先將硬件配置和程序下載到CPU315-2DP中。在計算機(jī)上打開MODBUS主站仿真軟件Modscan32。
圖18
2、點(diǎn)擊Modscan32上的Connection->Connect,顯示畫面如下,選擇計算機(jī)和CP341相連的COM口COM1,設(shè)好波特率,數(shù)據(jù)位,停止位,校驗(yàn)方式,如下圖:
圖19
3、設(shè)置完成,點(diǎn)擊OK,顯示畫面如下。
圖20
4、數(shù)據(jù)顯示區(qū)的10個地址的數(shù)據(jù)對應(yīng)CPU中DB1的前10個字(Word)的數(shù)值(DBW0–DBW10分別為1-10 ),如下圖。
圖21
5、其它數(shù)據(jù)的讀取,只需更改訪問的數(shù)據(jù)類型,此處不再介紹。
6、但要說明一下對于浮點(diǎn)數(shù)的顯示,PLC中浮點(diǎn)數(shù)的高16位和低16位與Modscan32顯示的相反,即PLC中浮點(diǎn)數(shù)的高16位對應(yīng)Modscan32顯示浮點(diǎn)數(shù)的低16位,PLC中浮點(diǎn)數(shù)的低16位對應(yīng)Modscan32顯示浮點(diǎn)數(shù)的高16位,可在程序中做一下處理,如下圖:
圖22
此時Modscan32顯示的浮點(diǎn)數(shù)40001對應(yīng)MD200的浮點(diǎn)數(shù)值,但MODBUS地址對應(yīng)DB1.DBD0。
硬件列表
設(shè)備名稱 |
設(shè)備型號 |
PS 307 |
6ES7 307-1EA01-0AA0 |
CPU 315-2PN/ DP |
6ES7 315-2EH14-0AB0 |
MMC |
6ES7 953-8LG30-0AA0 |
CP341 |
6ES7 341-1AH02-0AE0 |
Dongle |
6ES7 870-1AB01-0YA0 |
應(yīng)用CP341進(jìn)行 MODBUS協(xié)議通信時需要有Dongle的支持。在使用之前先將Dongle安裝在CP341模塊的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下圖所示。
圖1
組態(tài)和配置
1、打開軟件TIA PORTAL STEP7 V13,點(diǎn)擊項(xiàng)目->新建...創(chuàng)建一新項(xiàng)目,項(xiàng)目名稱為341_modbus_Slave。
圖2
2、用鼠標(biāo)點(diǎn)擊“添加新設(shè)備”,選擇SIMATIC S7-300->CPU->CPU 315-2PN/DP->6ES7 315-2EH14-0AB0。
圖3
3、雙擊“設(shè)備組態(tài)”進(jìn)入硬件組態(tài)界面,導(dǎo)軌RACK和CPU 315-2PN/DP已經(jīng)存在,只需要插入PS307和CP341。
圖4
4、雙擊CP341模板,進(jìn)入CP341的屬性框,配置CP341參數(shù)。
圖5
5、在“協(xié)議”選項(xiàng)中選擇“Modbus從站”。配置Modbus從站通信參數(shù),設(shè)定的通信參數(shù)要和通訊伙伴的相同。傳輸率(通信波特率):9600bps,數(shù)據(jù)位:8位,停止位:1位,奇偶校驗(yàn):無,從站站址:2,其他的參數(shù)都采用默認(rèn)設(shè)置。
圖6
6、FC01,05,15:讀取、強(qiáng)制輸出位的狀態(tài);分4個范圍,每個范圍前2行地址為信息傳送地址,后2行對應(yīng)西門子的PLC地址區(qū),即第1范圍從0~15對應(yīng)MODBUS地址區(qū)為00001~00016,對應(yīng)西門子數(shù)據(jù)區(qū)(標(biāo)記F.)為M10.0~M11.7;第2范圍從16~31對應(yīng)MODBUS 地址區(qū)為00017~00032,對應(yīng)西門子數(shù)據(jù)區(qū)(輸出Q.)為Q0.0~Q1.7;第3范圍從地址32~64對應(yīng)Modbus 地址區(qū)為00033~00065,對應(yīng)西門子數(shù)據(jù)區(qū)(時間T.)為T0~T1;第4范圍從地址64~96對應(yīng)Modbus 地址區(qū)為00065~00097,對應(yīng)西門子數(shù)據(jù)區(qū)(計數(shù)器C.)為C0~C1。
圖7
7、FC02:讀取輸入數(shù)據(jù)位的狀態(tài),分2個范圍,每個范圍前2行地址為信息傳送地址,后2行對應(yīng)西門子的PLC地址區(qū),即第1范圍從0~15對應(yīng)MODBUS地址區(qū)為10001~10016,對應(yīng)西門子數(shù)據(jù)區(qū)(標(biāo)記F.)為M12.0~M13.7;第2范圍從16~31對應(yīng)MODBUS 地址區(qū)為10017~10032,對應(yīng)西門子數(shù)據(jù)區(qū)(輸入I.)為I0.0~I1.7。
圖8
8、FC03、06、16:組態(tài)保持寄存器數(shù)據(jù)區(qū),對應(yīng)西門子數(shù)據(jù)區(qū)為DB塊,即MODBUS保持寄存器地址區(qū)的地址40001,對應(yīng)西門子DB塊的地址DB10.DBW0,依次40002對應(yīng)DB10.DBW2,往后依次類推。
圖9
9、FC04:組態(tài)輸入寄存器數(shù)據(jù)區(qū),對應(yīng)西門子數(shù)據(jù)區(qū)同樣是DB塊,即MODBUS輸入寄存器地址區(qū)的地址30001,對應(yīng)西門子DB塊的地址DB11.DBW0,依次30002對應(yīng)DB11.DBW2,往后依次類推。
圖10
10、設(shè)置寫參數(shù)的限制值,對寫操作做訪問限制。
圖11
11、如果選用的是RS422/485接口的CP341時,還需要設(shè)置接口類型,如下圖所示,其它參數(shù)與RS232的設(shè)置一樣。
圖12
編寫通信程序
1、在設(shè)置功能碼FC03、06、16中,創(chuàng)建DB10滿足設(shè)置需要;在設(shè)置功能碼FC04中,創(chuàng)建DB11滿足設(shè)置需要。這2個數(shù)據(jù)塊都創(chuàng)建1個數(shù)據(jù)類型Array的變量,數(shù)組元素的數(shù)據(jù)類型為Word,數(shù)量為101。
圖13
2、進(jìn)入主程序OB1,從通信->通信處理器->MODBUS Slave (RTU),調(diào)用功能塊MODB_341,MODB_341的背景數(shù)據(jù)塊為DB1。
圖14
關(guān)于功能塊MODB_341的管腳說明。
LADDR |
硬件組態(tài)中的起始邏輯地址,本例中為256,見圖15 |
START_TIMER |
超時初始化定時器,本例中為T0 |
START_TIME |
超時初始化時間值,本例中為S5t#1s |
OB_MASK |
外設(shè)訪問錯誤屏蔽位,本例中為M200.0 |
CP_START |
FB初始化始能位,該位需要置1。本例中為M200.1 |
CP_START_FM |
CP_START初始化的上升沿位,本例中為M200.2 |
CP_START_NDR |
從CP寫操作位,本例中為M200.3 |
CP_START_OK |
初始化成功標(biāo)志,本例中為M200.4 |
CP_START_ERROR |
初始化失敗標(biāo)志,本例中為M200.5 |
ERROR_NR |
錯誤號,本例中為MW202 |
ERROR_INFO |
錯誤信息,本例中為MW204,可以查看Modbus Slave 手冊第10章 |
圖15
設(shè)備連接
本文檔使用的CP341的接口是RS232C,因此需要通過標(biāo)準(zhǔn)的RS232C電纜來連接CP341和計算機(jī)的串口,具體的電纜連接方法請查看CP341手冊B章節(jié)連接電纜部分(見:手冊、文檔和軟件鏈接部分)。
如果使用的CP341是RS485接口的模塊,需要使用RS232C/RS485轉(zhuǎn)換器。
通信測試
前面使用 TIA Step7 軟件已經(jīng)將通信CP341的通信工作做完,下面進(jìn)行通信測試。這里使用串口通訊測試軟件Modscan32軟件來測試CP341和計算機(jī)的通信,步驟如下
1、將項(xiàng)目程序在線,本示例中手動將M200.1(即:CP_START)置1,M200.2(即:CP_START_FM)和M200.4(即:CP_START_OK)也會為1。
圖16
2、首先將硬件配置和程序下載到CPU315-2DP中。在計算機(jī)上打開MODBUS主站仿真軟件Modscan32。
圖17
3、點(diǎn)擊Modscan32上的Connection->Connect,顯示畫面如下,選擇計算機(jī)和CP341相連的COM口COM1,設(shè)好波特率,數(shù)據(jù)位,停止位,校驗(yàn)方式,如下圖。
圖18
4、設(shè)置完成,點(diǎn)擊OK,顯示畫面如下。
圖19
5、數(shù)據(jù)顯示區(qū)的10個地址的數(shù)據(jù)對應(yīng)CPU中DB10的前10個字(Word)的數(shù)值(DBW0–DBW10分別為1-10 ),如下圖。給這10個字賦值1-10。
圖20
6、Modscan32軟件界面03功能碼的地址40001-40010分別顯示1-10的數(shù)據(jù)。
圖21
Modbus RTU 協(xié)議的多站點(diǎn)輪詢(CP341,RS485)
硬件列表
設(shè)備名稱 | 設(shè)備型號 |
PS 307 |
6ES7 307-1EA00-0AA0 |
CPU 315-2PN/DP |
6ES7 315-2EH13-0AB0 |
MMC |
6ES7 953-8LG11-0AA0 |
CP341 |
6ES7 341-1CH01-0AE0 |
Dongle |
6ES7 870-1AA01-0YA0 |
注意:STEP7 V5.X軟件上,必須安裝如下軟件包才可進(jìn)行后續(xù)的組態(tài)配置。
組態(tài)配置
1、組態(tài)CPU及CP341,如圖1將CP341邏輯地址設(shè)為256。
圖1
2、設(shè)置Modbus總線傳輸速率和幀字符結(jié)構(gòu)
雙擊CP341->Parameters->Protocol中選擇Modbus Master;雙擊信封Protocol,選擇Modbus Master設(shè)置總線傳輸速率和幀字符結(jié)構(gòu)以及,其它從站的設(shè)置必須和主站設(shè)置一致。如圖,本例傳輸速率為9.6Kbit/s,幀字符1-8-e-1,即1位起始位,8位數(shù)據(jù)位,偶校驗(yàn),1位停止位。
圖2
3、設(shè)置電氣接口
選擇半雙工RS 485,接收端初始狀態(tài)按圖3設(shè)置,各從站的接口電氣標(biāo)準(zhǔn)應(yīng)和主站一致,如圖,具體配置步驟請參考手冊《CP340/341/440/441通訊及編程》。
圖3
編程
1、創(chuàng)建發(fā)送數(shù)據(jù)塊DB1
如圖,定義Modbus功能碼03的數(shù)據(jù)格式,更多功能碼格式參考手冊《以用于 PtP CP MODBUS 協(xié)議 RTU 格式 S7 的 SIMATIC 可加載驅(qū)動程序?yàn)橹髡尽?/a>
圖4
2、創(chuàng)建接收數(shù)據(jù)DB
在此共建立了2個DB(DB4,DB5)分別存放來自兩個從站的數(shù)據(jù),每個DB分配了一個0~1000個字的整型數(shù)組如圖。
圖5
3、創(chuàng)建輪詢功能塊FC1
設(shè)置指令計數(shù)器(MW2),如圖,本例中設(shè)置為2,即2兩條指令。
圖6
根據(jù)指令計數(shù)器值構(gòu)造發(fā)送指令并指定接收緩沖區(qū)。如圖,指令計數(shù)器數(shù)值為1,構(gòu)造的發(fā)送指令為訪問1號從站,功能碼03,起始地址0(對應(yīng)Modbus地址40001),4個寄存器;接收緩沖區(qū)為數(shù)據(jù)塊DB4,起始地址為0。
圖7
如圖,指令計數(shù)器數(shù)值為2,構(gòu)造的發(fā)送指令為訪問2號從站,功能碼03,起始地址0(對應(yīng)Modbus地址40001),4個寄存器;接收緩沖區(qū)為數(shù)據(jù)塊DB5,起始地址為2。
圖8
為了實(shí)現(xiàn)數(shù)據(jù)發(fā)送和接收,F(xiàn)C1中還必須調(diào)用CP341發(fā)送FB8 和接收FB7 功能塊。
圖9
FB8參數(shù)說明表
SF |
‘S’為發(fā)送,此處必須為大寫的‘S’ |
LADDR |
硬件組態(tài)中的起始邏輯地址,本例中為256 |
REQ |
發(fā)送數(shù)據(jù)觸發(fā)位,上升沿觸發(fā),本例中為M0.0 |
DB_NO |
發(fā)送數(shù)據(jù)塊號,本例中為1 |
DBB_NO |
發(fā)送數(shù)據(jù)的起始地址,本例中為0 |
LEN |
發(fā)送數(shù)據(jù)的長度,本例中為6 |
R_TYP |
‘X’為擴(kuò)展的數(shù)據(jù)塊,此處必須為大寫的‘X’ |
R |
取消通訊,本例始終為初始值FALSE |
DONE |
發(fā)送完成位,無故障發(fā)送完成后為true,M0.1 |
ERROR |
錯誤位,為true說明有錯誤,M0.2 |
STATUS |
狀態(tài)字,標(biāo)識錯誤代碼,查看Modbus Master和CP341手冊 |
其它參數(shù) |
查看在線幫助 |
圖10
FB7參數(shù)說明表
LADDR |
硬件組態(tài)中的起始邏輯地址,本例中為256 |
DB_NO |
發(fā)送數(shù)據(jù)塊號,本例中為MW4 |
DBB_NO |
發(fā)送數(shù)據(jù)的起始地址,本例中為MW6 |
LEN |
接收數(shù)據(jù)的長度 |
EN_R |
使能接收位,本例中始終為TURE |
R |
取消通訊,本例始終為初始值FALSE |
NDR |
接收完成位,無故障接收完成后為true |
ERROR |
錯誤位,為true說明有錯誤 |
STATUS |
狀態(tài)字,標(biāo)識錯誤代碼,查看Modbus Master和CP341手冊 |
其它參數(shù) |
查看在線幫助 |
CP341 Modbus RTU主站輪詢從站過程:以功能碼03(Function Code 03)為例,正常情況下REQ(M0.0)檢測到一個上升沿時,F(xiàn)B8啟動發(fā)送作業(yè),從站收到主站請求后發(fā)送響應(yīng)數(shù)據(jù),F(xiàn)B7將從站響應(yīng)的數(shù)據(jù)送回給CPU處理,發(fā)送作業(yè)完成位DONE(M0.1)置位,同時指令計數(shù)器MW2加1,構(gòu)造下條指令,傳遞到發(fā)送DB中(DB1.DBB0~DB1.DBB5),更新下一條指令的接收區(qū)地址(MW4,MW6)同時觸發(fā)REQ上升沿,啟動一個新的發(fā)送作業(yè)。
圖11
同樣以功能碼03(Function Code 03)為例,在故障情況下,F(xiàn)B8發(fā)送功能無法完成,ERROR置位,那么判斷該次發(fā)送作業(yè)失敗,更新發(fā)送區(qū)地址和接收區(qū)地址啟動下一個發(fā)送作業(yè)。如果FB8的DONE和ERROR由于某些故障都無法置位,那么通訊將處于死鎖狀態(tài),所以在啟動發(fā)送作業(yè)同時啟動超時定時器t0(本例中超時定時器時間設(shè)為2100ms),即定時器計時結(jié)束時DONE或ERROR仍然沒有置位,那么判斷該次發(fā)送作業(yè)失敗,更新發(fā)送區(qū)地址和接收區(qū)地址啟動下一個發(fā)送作業(yè)。
如圖所示,主站向Slave1發(fā)送請求指令,由于1號從站斷線故障,從站沒有收到主站請求,也無法返回主站需要的數(shù)據(jù),當(dāng)預(yù)設(shè)的從站響應(yīng)時間t(如圖11,t=2000ms)超時,發(fā)送功能塊ERROR(M0.2)置位,主站判斷本條指令失敗,同時發(fā)起下一條指令作業(yè)(Function Code 03)訪問Slave2,Slave2收到主站請求后,將響應(yīng)數(shù)據(jù)返回給主站CP341,主站再通過FB7將從站接收到的數(shù)據(jù)保存到指定位置,發(fā)送功能塊DONE(M0.1)置位,同時觸發(fā)下一次發(fā)送作業(yè)。
圖12
需要注意的是超時定時器時間(t0)必需大于預(yù)設(shè)的從站響應(yīng)時間t,而預(yù)設(shè)的從站響應(yīng)時間應(yīng)大于等于主站發(fā)出請求到接收到從站響應(yīng)數(shù)據(jù)的時間最大值(tn,n=1,2),即t0 > t ≥ Max(t1,t2),如圖。
圖13
4、在OB1中調(diào)用輪詢功能塊FC1
圖14
總結(jié)
本文檔所提供的例程適用于CP341作為Modbus主站輪詢訪問多個從站,根據(jù)實(shí)際需要構(gòu)造不同功能碼指令,可讀寫不同的從站的不同地址空間。本例對通訊故障時的處理方式是簡單的放棄當(dāng)前作業(yè),并觸發(fā)下一個作業(yè),實(shí)際運(yùn)用中可根據(jù)實(shí)際情況判斷是否需要重發(fā)或進(jìn)行其他故障處理。
串口通信故障診斷
如果串口通訊發(fā)生故障,為了能快速定位發(fā)生的所有錯誤, 可以通過以下常用方法診斷通信模塊的故障:
模塊指示燈
CP340/341/440/441 模塊都有數(shù)據(jù)交換的指示燈:Txd和Rxd。
- Txd(綠色):模塊通過接口向外發(fā)送數(shù)據(jù);
- Rxd(綠色):模塊通過接口接收外部發(fā)來的數(shù)據(jù);
故障指示燈各模塊不相同,詳細(xì)如下。
CP340/341模塊的故障指示燈
組報警 SF 燈(紅色常亮):組報警 LED SF 始終會在通電后亮起,在初始化后熄滅。 如果已為 CP340/341 生成了參數(shù)化數(shù)據(jù),則 SF LED 會在重新參數(shù)化期間再次短暫亮起。
如果發(fā)生以下哪種情況,組報警 LED SF 都將亮起:
- 硬件故障;
- 固件錯誤;
- 參數(shù)分配出錯或者不存在參數(shù)分配;
- 斷路(模塊和通訊伙伴之間的接收電纜斷開)。
CP440/441模塊的故障指示燈
組錯誤顯示:
- INTF(紅色):內(nèi)部錯誤;
- EXTF(紅色):外部錯誤。
接口故障顯示:
- FAULT(紅色):接口錯誤。
CP440 故障指示燈的錯誤消息,如圖 1 所示。
圖1 CP440 故障指示燈的錯誤消息
CP441 故障指示燈的錯誤消息,如圖 2 所示。
圖2 CP441 故障指示燈的錯誤消息
通信功能塊的 STATUS 診斷信息
CP 340/CP341/CP440 通訊功能塊的 STATUS 信息
FB 的 STATUS 輸出:
- 功能塊(CP340:P_SEND 和 P_RCV;CP341:P_SND_RK 和 P_RCV_RK;CP440:SEND_440 和 RECV_440)均有一個用于錯誤診斷的 STATUS 輸出,讀取功能塊的 STATUS 輸出就可以明了有關(guān)通訊期間發(fā)生的錯誤的信息, 可以在用戶程序中解釋 STATUS 輸出。
- 模塊還會將位于 STATUS 輸出上的診斷事件輸入至模塊的診斷緩沖區(qū)。
注意:功能塊的 STATUS、ERROR、DONE 和 NDR 等狀態(tài)僅保持一個掃描周期,然后清零,需要客戶編程讀出判斷。
STATUS 參數(shù)的結(jié)構(gòu),如圖 3 所示:
圖3 STATUS 參數(shù)的結(jié)構(gòu)
CP340 功能塊的 STATUS 事件類別和事件編號鏈接。
CP341 功能塊的 STATUS 事件類別和事件編號鏈接。
CP440 功能塊的 STATUS 事件類別和事件編號鏈接。
CP 441 通訊功能塊的 STATUS 信息
SFB 的 STATUS 輸出:
- 系統(tǒng)功能塊(SFB12/SFB13)都有一個用于錯誤診斷的 STATUS 輸出。 讀取系統(tǒng)功能塊的 STATUS 輸出,就可以了解有關(guān)在 CP 441 和分配的 CPU 之間進(jìn)行通訊時發(fā)生的錯誤的常規(guī)信息, 可以在用戶程序中解釋 STATUS 參數(shù)。
SFB12 的錯誤信息,如圖 4 所示。
圖4 SFB12 的錯誤信息
SFB13 的錯誤信息,如圖 5 所示。
圖5 SFB13 的錯誤信息
通信模塊的診斷緩沖區(qū)
通訊模塊有自己的診斷緩沖區(qū),模塊的所有診斷事件都按事件發(fā)生的順序輸入診斷緩沖區(qū)。
在診斷緩沖區(qū)中會顯示以下內(nèi)容:
- 模塊的工作狀態(tài);
- 模塊上的硬件/固件錯誤;
- 初始化和參數(shù)錯誤;
- 執(zhí)行 CPU 請求期間出現(xiàn)的錯誤;
- 數(shù)據(jù)傳輸錯誤(接收和發(fā)送錯誤)。
模塊的診斷緩沖區(qū)特點(diǎn):
- 是環(huán)形緩沖,診斷緩沖區(qū)已滿后,在其中生成新條目的同時會刪除最老的條目,這樣,最新條目始終在最頂部;
- 最多可容納診斷條目(CP340/341:9個;CP440:10個;CP441:64個);
- 關(guān)閉電源或重新分配模塊的參數(shù),診斷緩沖區(qū)中的內(nèi)容丟失。