西門子模塊6ES7515-2TM01-0AB0
參數(shù)MaxHold設(shè)置可以使用的V區(qū)字保持寄存器的個數(shù),相應(yīng)于Modbus地址4xxxx。例如,要允許主
站訪問2000字節(jié)的V存儲區(qū),則設(shè)置MaxHold為1000字(保持寄存器)。
參數(shù)HoldStart是V存儲區(qū)的保持寄存器的起始地址。通常設(shè)為VB0,所以參數(shù)HoldStart設(shè)為
&VB0(VB0的地址)。也可以將其它的V區(qū)地址為保持寄存器的起始地址,以便使VB0可以在項(xiàng)目
中用作其它目的。Modbus主站可以訪問起始地址為HoldStart,字?jǐn)?shù)為MaxHold的V存儲區(qū)。
當(dāng)MBUSJNIT指令完成時(shí),Done輸出接通。Error輸出字節(jié)包含指令執(zhí)行的結(jié)果。表12-6定義了該指
令執(zhí)行可能引起的錯誤條件。
MBUS_SLAVE 指令
MBUS—SLAVE指令用于服務(wù)來自Modbus主站的請求,必須
在每個循環(huán)周期都執(zhí)行,以便檢查和響應(yīng)Modbus請求。
當(dāng)EN輸人為接通時(shí),指令在每次掃描時(shí)都執(zhí)行。
MBUS_SLAVE指令無輸人參數(shù)。
當(dāng)MBUS_SLAVE指令響應(yīng)Modbus請求時(shí)Done輸出接通。如
果沒有服務(wù)的請求,Done輸出會斷開。
Error輸出包含該指令的執(zhí)行結(jié)果。該輸出只有Done接通時(shí)才
有效。如果Done斷開,錯誤代碼不會改變。表12-6定義了執(zhí)
行該指令可能引起的錯誤條件
編程基本步驟:
檢查Micro/WIN的軟件版本,應(yīng)當(dāng)是STEP 7-Micro/WIN V3.2以上版本。
檢查Micro/WIN的指令樹中是否存在Modbus RTU從站指令庫(圖1),庫中應(yīng)當(dāng)包括MBUS_INIT和MBUS_SLAVE兩個子程序。如果沒有,須安裝Micro/WIN32 V3.2的Instruction Library(指令庫)軟件包;
圖1. 指令樹中的庫指令
編程時(shí)使用SM0.1調(diào)用子程序MBUS_INIT進(jìn)行初始化,使用SM0.0調(diào)用MBUS_SLAVE,并相應(yīng)參數(shù)。關(guān)于參數(shù)的詳細(xì)說明,可在子程序的局部變量表中找到;
西門子模塊6ES7515-2TM01-0AB0
分配庫指令數(shù)據(jù)區(qū)
調(diào)用STEP 7 - Mciro/WIN32 V3.2 Instruction Library(指令庫)需要分配庫指令數(shù)據(jù)區(qū)(Library Memory)。庫指令數(shù)據(jù)區(qū)是相應(yīng)庫的子程序和中斷程序所要用到的變量存儲空間。
如果在編程時(shí)不分配庫指令數(shù)據(jù)區(qū),編譯時(shí)會產(chǎn)生許多相同的錯誤(錯誤18)。
操作步驟(以Modbus RTU庫指令為例):
在指令樹的Project(項(xiàng)目)中,以鼠標(biāo)右鍵單擊Program Block(程序塊),在彈出的快捷菜單中選擇Library Memory。如圖2所示:
圖2
在彈出的選項(xiàng)卡中設(shè)置庫指令數(shù)據(jù)區(qū),如圖2所示:
圖3.缺省情況下是從VB0開始,但因?yàn)榕cModbus的保持寄存區(qū)沖突,所以手動改為VB2000。按"Suggest Address"按鈕也可以自動分配。
可以使用Suggest Address(*地址)設(shè)置數(shù)據(jù)區(qū),但要注意編程軟件設(shè)置的數(shù)據(jù)區(qū)地址,只考慮到了其他一般尋址,而未考慮到諸如Modbus數(shù)據(jù)保持寄存器區(qū)等的設(shè)置。應(yīng)當(dāng)確保不與其他任何已使用的數(shù)據(jù)區(qū)重疊、沖突。不應(yīng)重復(fù)按Suggest Address按鈕,否則也會造成混亂。
在STEP 7-Micro/WIN32 V3.1中,有分配庫指令數(shù)據(jù)區(qū)時(shí)有不同的操作方法,需要在Symbol Table(符號表)中設(shè)置一個首地址。我們強(qiáng)烈建議使用當(dāng)時(shí)的編程版本。
3.2 添加指令庫
注意:添加自定義指令庫,需要關(guān)閉編輯庫指令的項(xiàng)目,新建立一個項(xiàng)目。如果要添加其他來源的庫指令自然不需要如此。
步:在Micro/WIN的File(文件)菜單中選擇Add/Remove Libraries...(添加/刪除指令庫)命令 ;或者在指令樹的Libraries(指令庫)分支上單擊鼠標(biāo)右鍵,選擇Add/Remove Libraries...
圖4. 選擇添加/刪除指令庫命令
添加/刪除對話框中將顯示已經(jīng)在本機(jī)的Micro/WIN中集成的用戶自定義指令庫。
圖5. 已安裝的庫指令
第二步:按Add(添加)按鈕,選擇新定義的庫文件路徑。用戶自定義庫將自動添加到Micro/WIN指令樹的Libraries分支下。
圖6. 選擇庫文件
缺省情況下,Micro/WIN到圖8中的路徑下尋找?guī)熘噶钗募?。用戶也可以其他路徑。但要注意庫文件?yīng)當(dāng)保持在非移動的介質(zhì)上,如果了一個可移動硬盤,則硬盤不在時(shí)會發(fā)生找不到庫的錯誤。建議用戶使用缺省設(shè)置。
3.3 刪除庫指令
步:選擇添加/刪除指令庫命令
圖7. 選擇命令
第二步:選中須卸載的庫所對應(yīng)的庫文件,按Remove(刪除)按鈕
圖8. 選中要刪除的庫指令文件
4RS-485網(wǎng)絡(luò)
S7-200系統(tǒng)支持的PPI、MPI和PROFIBUS-DP協(xié)議通常以RS-485電氣網(wǎng)絡(luò)為硬件基礎(chǔ)。
RS-485串行通信標(biāo)準(zhǔn)采用平衡信號傳輸方式,或者稱為差動模式。平衡傳輸方式可以有效地抑制傳輸過程中干擾。
平衡方式采用一對導(dǎo)線,利用兩根導(dǎo)線間的電壓差傳輸傳輸信號。這兩根導(dǎo)線被命名為A(TxD/RxD-)和B(TxD/RxD+)。當(dāng)B的電壓比A高時(shí),認(rèn)為傳輸?shù)氖沁壿?高"電平;當(dāng)B的電壓比A低時(shí),認(rèn)為傳輸?shù)氖沁壿?低"電平信號。能夠有效工作的差動電壓范圍十分寬廣,可以從零點(diǎn)幾伏到接近十伏。
RS-485通信端口可以做到很高的通信速率,較長的通信距離,以及并聯(lián)連接多個端口。
平衡通信方式能否有效工作受到共模電壓差的影響。RS-485接口的兩根導(dǎo)線相對于通信對象信號地的電壓差就是共模電壓。非電氣隔離的RS-485接口能在一定的范圍內(nèi)抵抗共模電壓對通信的干擾。
S7-200 CPU通信口的共模抑制電壓是12V。所以對于這類非隔離型的RS-485端口,保證通信口之間的信號地等電位非常重要,將它們連接在一起(并不是說一定要接地)。
S7-200系統(tǒng)中的RS-485端口是半雙工的,不能同時(shí)發(fā)送和接收信號。
在S7-200系統(tǒng)中,選擇合適的通信設(shè)備,可以做到波特率從1200到12M,單段距離1000m,單段站點(diǎn)32個的通信網(wǎng)絡(luò)。通過中繼器,RS-485電氣網(wǎng)絡(luò)還可以擴(kuò)展通信距離,增加通信站點(diǎn)。詳情請參考《S7-200系統(tǒng)手冊》關(guān)于通信的專門一章。
雖然常見的RS-485通信器件在電氣性能上基本*,但物理接口卻五花八門,沒有統(tǒng)一的規(guī)定。
西門子系統(tǒng)中的 D-Sub 9 針型 RS-485 端口,引腳定義是基本*的。
4.1 S7-200系統(tǒng)中的RS-485通信
在S7-200系統(tǒng)中,CPU上的通信口(編程口),以及EM277模塊上的通信端口都是符合RS-485電氣標(biāo)準(zhǔn)的。但它們也有所不同:
以下三種協(xié)議,都可以在RS-485的硬件基礎(chǔ)上實(shí)現(xiàn)通信:
PPI(包括編程通信、S7-200 CPU之間、S7-200 CPU與HMI之間的通信等)
MPI(S7-200 CPU與S7-300/400 CPU、S7-200 CPU與HMI之間、EM277與HMI之間的通信等)
PROFIBUS-DP(EM277與其他PROFIBUS-DP主站之間的通信)
實(shí)際上,如果各通信站點(diǎn)的地址不同,通信波特率相同,上述三個協(xié)議可以在一個RS-485網(wǎng)絡(luò)上同時(shí)實(shí)現(xiàn)各自的通信。當(dāng)然,一個站點(diǎn)支持什么協(xié)議受到自身?xiàng)l件所限。
因此考察上述電氣網(wǎng)絡(luò)的通信時(shí),我們應(yīng)注意到它們都受RS-485網(wǎng)絡(luò)電氣基礎(chǔ)的制約。上述網(wǎng)絡(luò)所用的網(wǎng)絡(luò)硬件基本一樣。
5RS-485網(wǎng)絡(luò)的硬件組成