產(chǎn)品詳情
S7-1200 西門子 6ES7393-4AA00-0AA0 現(xiàn)貨特價(jià)銷售
串口通信硬件選型
在SIMATIC S7系列產(chǎn)品中包括多種不同等級(jí)、不同功能、適合不同應(yīng)用場(chǎng)合的串行通信模塊。
CP340/341/440/441 模塊特性對(duì)照
S7-300/400 PLC 主要的串行通信模塊及模塊特性,如圖 1 所示。
圖1 S7-300/400 串行通信模塊列表
注意:對(duì)于Modbus通訊協(xié)議方式,每個(gè)通訊模塊都需要配置一個(gè)Modbus主站或從站硬件狗(Dongle)。
下圖列出了目前最新產(chǎn)品的訂貨信息,僅供參考,訂貨時(shí)請(qǐng)以相關(guān)產(chǎn)品手冊(cè)或供貨商提供信息為準(zhǔn),如圖 2 所示。
串口接線
S7-300/400 支持的串口模塊集成接口和接口子模塊常用有 RS232C 和 RS422/485 兩種。
RS232C 接口
1.接口定義
CP340/341集成 RS 232C 口和 RS 232C 接口子模塊的前面板上 9 針 Sub-D 型公連接器的針腳分配,如圖 1 所示。
圖1 RS232C 9 針 Sub-D 型針頭公連接器的針腳圖
2.電纜連接
RS232C電纜連接:9針對(duì)9針連接示意圖,如圖 2 所示。
圖2 RS232C電纜連接 9針對(duì)9針
常用的是三線制接法,如圖 3 所示。
圖3 RS232C 常用三線制
RS422/485 接口
1.接口定義
CP340/341/440 集成 RS422/485 口和 RS422/485 接口子模塊的前面板上 15 針 Sub-D 型孔頭連接器的針腳分配,如圖 4 所示。
圖4 RS422/485 接口 15 針 Sub-D 型孔頭連接器的針腳圖
2.電纜連接
RS422 接口電纜連接,如圖 5 所示。
圖5 RS422接口電纜連接圖
RS485 接口電纜連接,如圖 6 所示。
圖6 RS485接口電纜連接圖
注意:1)如果電纜長(zhǎng)度超過(guò)50米,則必須在接收方上焊接一個(gè)約 330 ohm的終端電阻,以確保數(shù)據(jù)傳輸暢通無(wú)阻。
接線及拓?fù)涑R妴?wèn)題
RS422/485接口,按照 RS485 方式接線,是否需要外部短接2和4,9和11?
組態(tài)選擇成 RS485 方式,內(nèi)部已經(jīng)短接2和4,9和11,不需要外部短接線,直接接4-,11+即可。
RS422/485 接口的 15針的Sub-D 型頭是孔,還是針?
是孔,即母頭。
西門子是否用于RS485接口(15針)的通訊電纜?
無(wú)此種電纜,需要客戶自行購(gòu)買15針D型頭,自己焊接4和11,按照?qǐng)D4連接。
RS485方式通訊,一對(duì)多站點(diǎn)時(shí),應(yīng)采用那種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)?
網(wǎng)絡(luò)拓?fù)湟话悴捎媒K端匹配的總線型結(jié)構(gòu),不支持星型或樹形。
RS485方式做Modbus RTU主站,可以帶多少個(gè)從站?
理論上一個(gè)網(wǎng)段可以帶31個(gè)從站,如果超出31個(gè),可以考慮增加RS485中繼器(西門子無(wú)適用于串口通信的中繼器,需選購(gòu)第三方設(shè)備),加一個(gè)中繼器可以再增加31個(gè)從站。
但是實(shí)際上由于串口通信是一個(gè)一個(gè)站點(diǎn)的輪詢操作,站點(diǎn)增加即輪詢一周的時(shí)間也會(huì)增大。
因此需要考慮工藝上需求是否能夠滿足。
通常來(lái)說(shuō),對(duì)于各站點(diǎn)的只讀操作(僅用于數(shù)據(jù)監(jiān)測(cè)),對(duì)時(shí)間要求較低的工藝,站點(diǎn)數(shù)量可以適量增加。
而對(duì)于寫操作,或讀寫操作的多站點(diǎn)通信,不推薦使用串口通信,建議采用Profibus總線或Profinet總線通信。
CP341的RS422/485模塊,按照 RS485 方式通訊,實(shí)際未接外部線纜,僅硬件組態(tài)下載,模塊的SF燈亮?
檢查參數(shù)是否配置;硬件組態(tài)中的接口選項(xiàng)是否改成RS485(默認(rèn)的是RS422,會(huì)斷線檢測(cè),未接線報(bào)故障),如圖 7 所示;模塊是否故障。
圖7 CP341 參數(shù)中接口設(shè)置
怎么構(gòu)建一個(gè)RS422/485的Modbus 主站帶從站多點(diǎn)網(wǎng)絡(luò)?
多點(diǎn)網(wǎng)絡(luò)接線圖如下:
圖8 RS422多點(diǎn)接線圖
圖9 RS485多點(diǎn)接線圖
硬件及軟件列表
設(shè)備名稱
|
設(shè)備型號(hào)
|
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-1AA01-0YA0 |
將Dongle插入CP341中,Dongle和插入Dongle前后的CP341如下圖所示。
圖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-M。
圖2
2、雙擊Hardware進(jìn)入硬件配置畫面,插入RACK、CPU315-2DP、CP341。
圖3
3、 雙擊CP341模板,點(diǎn)擊Parameter...,配置CP341參數(shù)。在Protocol選項(xiàng)中選擇MODBUS Master。
圖4
4、雙擊Protocol下的信封圖標(biāo),配置Modbus Master參數(shù),點(diǎn)擊Modbus-Master按鈕,設(shè)置通訊波特率等參數(shù)。
圖5
5、配置完成后保存時(shí)會(huì)提示是否裝載驅(qū)動(dòng)。
圖6
6、此時(shí)必須連接到實(shí)際的PLC,點(diǎn)擊Yes按鈕裝載驅(qū)動(dòng),或點(diǎn)擊Load Drivers裝載,裝載時(shí)CPU必須為STOP模式。
圖7
7、裝載完成后,如果再次裝載,Step7會(huì)提示Driver already exists。配置完成后點(diǎn)擊下載按鈕保存編譯硬件組態(tài),并確認(rèn)沒(méi)有錯(cuò)誤。
圖8
編寫通信程序
1、雙擊OB1,打開OB1編程畫面,從庫(kù)Libraries->CP PtP->CP341中調(diào)用發(fā)送程序塊FB8 P_SND_RK,分配背景數(shù)據(jù)塊DB8,將參數(shù)LADDR設(shè)為硬件組態(tài)中的輸入起始邏輯地址256。
圖9
2、創(chuàng)建發(fā)送數(shù)據(jù)塊DB1,從站地址為2,功能碼為3,起始地址為0,讀4個(gè)寄存器數(shù)據(jù),具體功能碼3 的使用參見Modbus Master手冊(cè) 5.3 Function Code 03 - Read Output Registers部分的說(shuō)明。
圖10
3、調(diào)用發(fā)送功能塊,設(shè)置參數(shù)。
圖11
FB8 P_SND_RK的參數(shù)設(shè)置見下表:
SF |
‘S’為發(fā)送,此處必須為大寫的‘S’ |
LADDR |
硬件組態(tài)中的起始邏輯地址,本例中為256 |
REQ |
發(fā)送數(shù)據(jù)觸發(fā)位,上升沿觸發(fā),本例中為M0.0 |
DB_NO |
發(fā)送數(shù)據(jù)塊號(hào),本例中為1(DB1) |
DBB_NO |
發(fā)送數(shù)據(jù)的起始地址,本例中為0(DB1.DBB0) |
LEN |
發(fā)送數(shù)據(jù)的長(zhǎng)度,本例中為6 |
R_TYP |
‘X’為擴(kuò)展的數(shù)據(jù)塊,此處必須為大寫的‘X’ |
R |
取消通訊,本例中不用 |
DONE |
發(fā)送完成位,發(fā)送完成后為TRUE,同時(shí)沒(méi)有錯(cuò)誤 |
ERROR |
錯(cuò)誤位,為TRUE說(shuō)明有錯(cuò)誤 |
STATUS |
狀態(tài)字,標(biāo)識(shí)錯(cuò)誤代碼,查看Modbus Master手冊(cè)第7章獲得相應(yīng)的說(shuō)明 |
其它參數(shù) |
本例中不用 |
4、從庫(kù)中Libraries->CP PtP->CP341調(diào)用接收程序塊FB7 P_RCV_RK,分配背景數(shù)據(jù)塊DB7,將LADDR設(shè)為硬件組態(tài)中的輸入起始邏輯地址256。
圖12
5、創(chuàng)建接收數(shù)據(jù)塊DB2。
圖13
6、調(diào)用接收功能塊,設(shè)置參數(shù)。
圖14
FB7 P_RCV_RK的參數(shù)設(shè)置見下表:
LADDR |
硬件組態(tài)中的起始邏輯地址,本例中為256 |
DB_NO |
發(fā)送數(shù)據(jù)塊號(hào),本例中為2(DB2) |
DBB_NO |
發(fā)送數(shù)據(jù)的起始地址,本例中為0(DB2.DBB0) |
LEN |
接收數(shù)據(jù)的長(zhǎng)度,本例中為MW4,只有在接收到數(shù)據(jù)的當(dāng)前周期,此值不為0,可以查看MW8的值來(lái)確認(rèn)接收到數(shù)據(jù)的長(zhǎng)度 |
EN_R |
使能接收位,本例中為M0.3 |
R |
取消通訊,本例中不用 |
NDR |
接收完成位,接收完成后為TRUE,同時(shí)沒(méi)有錯(cuò)誤 |
ERROR |
錯(cuò)誤位,為TRUE說(shuō)明有錯(cuò)誤 |
STATUS |
狀態(tài)字,標(biāo)識(shí)錯(cuò)誤代碼,查看Modbus Master手冊(cè)第7章獲得相應(yīng)的說(shuō)明 |
其它參數(shù) |
本例中不用 |
設(shè)備連接
本文檔使用的CP341的接口是RS232C,因此需要通過(guò)標(biāo)準(zhǔn)的RS232C電纜來(lái)連接CP341和計(jì)算機(jī)的串口.
具體的電纜連接方法請(qǐng)查看:串口接線
如果使用的CP341是RS485接口的模塊,需要使用RS232C/RS485轉(zhuǎn)換器(需要選購(gòu)第三方設(shè)備)。
通信測(cè)試
前面使用Step7 V5.5軟件已經(jīng)將通信CP341的通信工作做完,下面進(jìn)行通信測(cè)試。這里使用串口通訊測(cè)試軟件modbus slave軟件來(lái)測(cè)試CP341和計(jì)算機(jī)的通信,步驟如下
1、安裝Modbus Slave測(cè)試軟件,安裝完成后,在桌面上生成一圖標(biāo),雙擊此圖標(biāo),打開modbus slave測(cè)試軟件,如圖。
圖15
2、點(diǎn)擊Register later按鈕,不注冊(cè)此軟件,可以使用30天,但每次只能使用15分鐘,網(wǎng)上下載的軟件,沒(méi)有注冊(cè)碼。然后點(diǎn)擊菜單Connection->connect配置串口參數(shù),要和CP341的參數(shù)相同。
圖16
3、點(diǎn)擊OK按鈕,然后選擇菜單Setup->Slave Definition...設(shè)定通訊數(shù)據(jù),因?yàn)镃P341使用的是功能碼3,所以選擇03 Holding Register,CP341訪問(wèn)的從站地址為2,Slave ID設(shè)為2,起始地址從1開始,畫面如下。
圖17
4、然后設(shè)置地址1到4 的數(shù)據(jù)分別為111 到444,然后在Step7變量表中設(shè)置M0.3為TRUE,使能接收,然后將M0.0置成 TRUE(上升沿觸發(fā),想再發(fā)送需要將M0.0從TRUE置成FALSE,然后再置成TRUE),可以監(jiān)控到DB1.DBW0到DB1.DBW4的值為111 到444,如下圖。
圖18
5、如果想讀取浮點(diǎn)數(shù),必須設(shè)置數(shù)據(jù)格式,點(diǎn)擊菜單Display->Float Inverse。
圖19
6、設(shè)置地址1和3的值分別為1.234 和5.678,觸發(fā)M0.0發(fā)送,可以看到接收到的數(shù)據(jù)為1.234 和5.678,如下圖。
圖20
硬件列表
設(shè)備名稱 |
設(shè)備型號(hào) |
PS 307 |
6ES7 307-1EA01-0AA0 |
CPU 319-3PN/ DP |
6ES7 318-3EL00-0AB0 |
MMC |
6ES7 953-8LG30-0AA0 |
CP341 |
6ES7 341-1CH02-0AE0 |
Dongle |
6ES7 870-1AB01-0YA0 |
應(yīng)用CP341進(jìn)行 MODBUS協(xié)議通信時(shí)需要有Dongle的支持。在使用之前先將Dongle安裝在CP341模塊的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下圖所示。
圖1
組態(tài)和配置
1、打開軟件TIA PORTAL
圖2
STEP7 V13,點(diǎn)擊項(xiàng)目->新建...創(chuàng)建一新項(xiàng)目,項(xiàng)目名稱為341_modbus_Master。
2、用鼠標(biāo)點(diǎn)擊“添加新設(shè)備”,選擇SIMATIC S7-300->CPU->CPU 319-3PN/DP->6ES7 318-3EL00-0AB0。
圖3
3、雙擊“設(shè)備組態(tài)”進(jìn)入硬件組態(tài)界面,導(dǎo)軌RACK和CPU 319-3PN/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):無(wú)。
圖6
6、本示例選用的是RS422/485接口的CP341,還需要設(shè)置接口屬性,如下圖所示。
圖7
編寫通信程序
1、雙擊“添加新塊”,創(chuàng)建發(fā)送數(shù)據(jù)塊DB10和接收數(shù)據(jù)塊DB11,發(fā)送數(shù)據(jù)塊的名稱為Send,接收數(shù)據(jù)塊的名稱為Rev;如下圖所示,發(fā)送數(shù)據(jù)塊中新建幾個(gè)變量,從站地址為2,功能碼為3,起始地址為0,讀4個(gè)寄存器數(shù)據(jù),具體功能碼3 的使用參見手冊(cè)“S7串行通信模板Modbus RTU主站可裝載驅(qū)動(dòng)的操作說(shuō)明” 6.3章節(jié)的說(shuō)明;如下圖所示,接受數(shù)據(jù)塊中新建1個(gè)數(shù)據(jù)類型Array的變量,數(shù)組元素的數(shù)據(jù)類型為Byte,數(shù)量為400。
圖8
圖9
2、進(jìn)入主程序OB1,從通信->通信處理器->PtP鏈接:CP341,調(diào)用發(fā)送功能塊P_SND_RK和接收功能塊P_RCV_RK。P_SND_RK的背景數(shù)據(jù)塊為DB1,P_RCV_RK的背景數(shù)據(jù)塊為DB2。
圖10
CP341的發(fā)送功能塊P_SND_RK 的參數(shù)設(shè)置見下表。
管腳 |
解釋描述 |
SF |
‘S’為發(fā)送,此處必須為大寫的‘S’ |
LADDR |
硬件組態(tài)中的起始邏輯地址,本例中為256,見圖11。 |
REQ |
發(fā)送數(shù)據(jù)觸發(fā)位,上升沿觸發(fā),本例中為M0.5,為時(shí)鐘存儲(chǔ)器的位,見圖12。 |
DB_NO |
發(fā)送數(shù)據(jù)塊號(hào),本例中為10(DB10) |
DBB_NO |
發(fā)送數(shù)據(jù)的起始地址,本例中為0(DB10.DBB0) |
LEN |
發(fā)送數(shù)據(jù)的長(zhǎng)度,本例中為6 |
R_TYP |
‘X’為擴(kuò)展的數(shù)據(jù)塊,此處必須為大寫的‘X’ |
R |
取消通訊,本例中不用 |
DONE |
發(fā)送完成位,發(fā)送完成后為TRUE,同時(shí)沒(méi)有錯(cuò)誤 |
ERROR |
錯(cuò)誤位,為TRUE說(shuō)明有錯(cuò)誤 |
STATUS |
狀態(tài)字,標(biāo)識(shí)錯(cuò)誤代碼,查看Modbus Master手冊(cè)獲得相應(yīng)的說(shuō)明 |
其它參數(shù) |
本例中不用 |
CP341的接收功能塊P_RCV_RK 的參數(shù)設(shè)置見下表。
管腳 |
解釋描述 |
LADDR |
硬件組態(tài)中的起始邏輯地址,本例中為256,見圖11。 |
DB_NO |
發(fā)送數(shù)據(jù)塊號(hào),本例中為11(DB11)。 |
DBB_NO |
發(fā)送數(shù)據(jù)的起始地址,本例中為0(DB11.DBB0)。 |
LEN |
接收數(shù)據(jù)的長(zhǎng)度,本例中為MW22,只顯示一個(gè)掃描周期,即:只有在接收到數(shù)據(jù)的當(dāng)前周期,此值不為0。 |
EN_R |
使能接收位,本例中為M20.0,常閉點(diǎn), 始終保持接收狀態(tài)。 |
R |
取消通訊,本例中不用。 |
NDR |
接收完成位,接收完成并沒(méi)有錯(cuò)誤為TRUE,只顯示一個(gè)掃描周期。 |
ERROR |
錯(cuò)誤位,為TRUE說(shuō)明有錯(cuò)誤,只顯示一個(gè)掃描周期。 |
STATUS |
狀態(tài)字,標(biāo)識(shí)錯(cuò)誤代碼,只顯示一個(gè)掃描周期,查看Modbus Master手冊(cè)獲得相應(yīng)的說(shuō)明。 |
其它參數(shù) |
本例中不用 |
圖11
圖12
設(shè)備連接
本文檔使用的CP341的接口是RS232C,因此需要通過(guò)標(biāo)準(zhǔn)的RS232C電纜來(lái)連接CP341和計(jì)算機(jī)的串口.
具體的電纜連接方法請(qǐng)查看:串口接線
如果使用的CP341是RS485接口的模塊,需要使用RS232C/RS485轉(zhuǎn)換器(需要選購(gòu)第三方設(shè)備)。
通信測(cè)試
前面使用 TIA Step7 軟件已經(jīng)將通信CP341的通信工作做完,下面進(jìn)行通信測(cè)試。這里使用串口通訊測(cè)試軟件ModSim32軟件來(lái)測(cè)試CP341和計(jì)算機(jī)的通信,步驟如下
1、雙擊ModSim32軟件圖標(biāo),新建項(xiàng)目,點(diǎn)擊Port1,進(jìn)入端口1做設(shè)置,本例計(jì)算機(jī)只有一個(gè)端口,所以就對(duì)端口1做設(shè)置,如果計(jì)算機(jī)有多個(gè)端口,要注意所選端口。
圖13
2、進(jìn)入Port1設(shè)置界面,設(shè)置波特率、數(shù)據(jù)位、奇偶校驗(yàn)等參數(shù),要和CP341的參數(shù)相同。
圖14
3、點(diǎn)擊“OK”,選擇軟件的03功能碼界面,本例設(shè)置03功能碼的10個(gè)數(shù)據(jù),其中前4個(gè)數(shù)據(jù)分別設(shè)置成1—4。
圖15
4、首先將硬件配置和程序下載到CPU319-3PN/DP中,時(shí)鐘脈沖信號(hào)M0.5從0跳變成1時(shí),CP341將數(shù)據(jù)發(fā)送出去。
圖16
5、M20.0為常閉點(diǎn),程序下載完成,CPU運(yùn)行后,就始終處于接收狀態(tài)。在STEP7中打開接收數(shù)據(jù)塊DB11監(jiān)控接收到的數(shù)據(jù),可以看到發(fā)送的數(shù)據(jù)被正確的接收。
圖17
S7-1200 西門子 6ES7393-4AA00-0AA0