西門子PLC模塊6ES7521-1BL00-0AB0
數(shù)器的初始化順序示例
HSC0 在以下初始化和操作順序說明中被用作計數(shù)器。
● HSC0、HSC2、HS 和 HSC5 支持計數(shù) (0, 1)、(3, 4)、(6, 7) 和 (9, 10)。
● HSC1 和 HSC3 僅支持計數(shù) 0。初始化說明假設(shè)剛剛將 CPU 置于 RUN
,因此掃描存儲器位為真。如果不是如此,請記住在 RUN
后,只能為每臺高速計數(shù)器執(zhí)行一次 HDEF 指令。為高速計數(shù)器第二次執(zhí)行 HDEF
會生成運行時錯誤,并不會更改該計數(shù)器執(zhí)行 HDEF 時計數(shù)器的設(shè)置。
說明
雖然以下順序分別顯示如何更改方向、當(dāng)前值和預(yù)設(shè)值,但您可以按照相同的順序更改所有數(shù)值或這些數(shù)值的任何組合,方法是相應(yīng)設(shè)置 SMB37 的值,然后執(zhí)行 HSC0 指令。
初始化 0 和 1
下列步驟說明如何為帶內(nèi)部方向的單相向上/向下計數(shù)器( 0 和 1)初始化 HSC0:
1. 使用掃描存儲器位調(diào)用執(zhí)行初始化操作的子例程。由于使用子例程調(diào)用,后續(xù)掃描不再調(diào)用子例程,因此可掃描執(zhí)行時間并使程序結(jié)構(gòu)更加合理。
2. 在初始化子例程中,根據(jù)所需的控制操作加載 SMB37。例如:SMB37 = 16#F8 產(chǎn)生如下結(jié)果:
– 啟用計數(shù)器
– 寫入新當(dāng)前值
– 寫入新預(yù)設(shè)值
– 將方向設(shè)置為加計數(shù)
– 將復(fù)位輸入設(shè)為高電平有效
3. 將 HSC 輸入設(shè) 0 且 MODE 輸入設(shè)為下列值之一后執(zhí)行 HDEF 指令:
– 0 表示無外部復(fù)位
– 1 表示有外部復(fù)位
4. 用所需當(dāng)前值加載 SMD38(雙字大小值)(加載 0 可進(jìn)行)。
5. 用所需預(yù)設(shè)值加載 SMD42(雙字大小值)。
6. 為捕獲當(dāng)前值等于預(yù)設(shè)值事件,將 CV = PV 中斷事件(事件
12)附加于中斷例程,編程中斷。有關(guān)中斷處理的完整詳細(xì)信息,請參見討論中斷指令的部分。
7. 為捕獲外部復(fù)位事件,將外部復(fù)位中斷事件(事件 28)附加于中斷例程,編程中斷。
8. 執(zhí)行全局中斷啟用指令 (ENI) 以啟用中斷。
9. 執(zhí)行 HSC 指令,使 CPU 對 HSC0 編程。
10. 退出子例程。
初始化 3 和 4
下列步驟說明如何為帶外部方向控制的單相向上/向下計數(shù)器( 3 和 4)初始化HSC0:
1. 使用掃描存儲器位調(diào)用執(zhí)行初始化操作的子例程。由于使用子例程調(diào)用,后續(xù)掃描不再調(diào)用子例程,因此可掃描執(zhí)行時間并使程序結(jié)構(gòu)更加合理。
2. 在初始化子例程中,根據(jù)所需的控制操作加載 SMB37。例如:SMB37 = 16#F8 產(chǎn)生如下結(jié)果:
– 啟用計數(shù)器
– 寫入新當(dāng)前值
– 寫入新預(yù)設(shè)值
– 將 HSC 的初始方向設(shè)置為向上計數(shù)
– 將復(fù)位輸入設(shè)為高電平有效
3. 將 HSC 輸入設(shè) 0 且 MODE 輸入設(shè)為下列值之一后執(zhí)行 HDEF 指令:
– 3 表示無外部復(fù)位
– 4 表示有外部復(fù)位
4. 用所需當(dāng)前值加載 SMD38(雙字大小值)(加載 0 可進(jìn)行)。
5. 用所需預(yù)設(shè)值加載 SMD42(雙字大小值)。
6. 為捕獲當(dāng)前值等于預(yù)設(shè)值事件,將 CV = PV 中斷事件(事件
12)附加于中斷例程,編程中斷。有關(guān)中斷處理的完整詳細(xì)信息,請參見討論中斷指令的部分。
7. 為捕獲方向更改,將方向更改中斷事件(事件 27)附加于中斷例程中,編程中斷。
為捕獲外部復(fù)位事件,將外部復(fù)位中斷事件(事件 28)附加于中斷例程,編程中斷
支持 Modbus 協(xié)議的設(shè)備或軟件,使用時用戶直接設(shè)置或看到的應(yīng)當(dāng)是 Modbus 數(shù)據(jù)地址。Modbus 地址所訪問的數(shù)據(jù),是通過各種"功能"讀寫而來。功能碼是 Modbus 地址的底層。如果 Modbus 通信的一方提供的所謂 Modbus 協(xié)議只有功能碼,則需要注意了解此功能號與 Modbus 地址間的對應(yīng)關(guān)系。
如何訪問大于 9999 的保持寄存器地址?
通常 Modbus 協(xié)議的保持寄存器地址范圍在 40001 - 49999 之間。對于多數(shù)應(yīng)用來說已經(jīng)夠了。但有些 Modbus 從站把地址映射到保持寄存器區(qū)的地址超過 9999 的部分。
Modbus Master 協(xié)議庫支持超過 9999 的保持寄存器地址。地址范圍為 400001 - 465536。只需在調(diào)用 MBUS_MSG 子程序時給 Addr 參數(shù)賦相應(yīng)的值即可,如 416768。
Modubs Master 擴展地址模式僅支持保持寄存器區(qū),不支持其他地址類型。
S7-200 作為 Modbus 主站方接收上來的數(shù)據(jù)格式與第三方設(shè)備不一樣怎么辦?
西門子PLC數(shù)據(jù)的存儲格式為高位低存方式。舉例:VD200中包含VW200和VW202,其中VW202是低字,VW200是高字。若第三方設(shè)備與西門子數(shù)據(jù)存儲格式不同,是低位低存的方式,那么通信上來的數(shù)據(jù)就會存在錯誤,需要進(jìn)行轉(zhuǎn)換才能使用。編程的方式比較多樣,針對雙字中高低字的交換可以使用SWAP(字交換)指令,若是字節(jié)交換可以考慮循環(huán)移位指令。
S7-200 是否支持如 Modbus TCP 等其它協(xié)議?
不支持。S7-200自身的通信端口或其通信擴展模塊均不支持 Modbus TCP、CANopen、DeviceNet 以及 BACnet 通信協(xié)議。
為什么 S7-200 作 Modbus 主站時 MBUS_MSG 指令報6號錯誤?
引起6號錯誤主要有兩方面的原因:1.多個 MBUS_MSG 指令同時使能執(zhí)行;2. Modbus庫存儲區(qū)中分配的建議地址區(qū)與編程中已使用的V存儲區(qū)有重疊。
2Modbus RTU從站
2.1 CPU 上的通信口(Port0)支持 Modbus RTU 從站通信協(xié)議
S7-200 CPU上的通信口Port0可以支持Modbus RTU協(xié)議,成為Modbus RTU從站。此功能是通過S7-200的自由口通信模式實現(xiàn),因此可以通過無線數(shù)據(jù)電臺等慢速通信設(shè)備傳輸。
詳情請參考《S7-200系統(tǒng)手冊》之相關(guān)章節(jié)。
要實現(xiàn)Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的編程軟件,而且須安裝STEP 7-Micro/WIN32 V3.2 Instruction Library(指令庫)。Modbus RTU功能是通過指令庫中預(yù)先編好的程序功能塊實現(xiàn)的。
Modbus RTU從站指令庫只支持CPU上的通信0口(Port0)
西門子PLC模塊6ES7521-1BL00-0AB0
慣量J電機負(fù)載變化按預(yù)先設(shè)定的頻率變化率升速或減速時,有可能出現(xiàn)加速轉(zhuǎn)矩不夠,從而造成電機失速,即電機轉(zhuǎn)速與變頻器輸出頻率不協(xié)調(diào),從而造成過電流或過電壓。
PLC內(nèi)部集成了CPU,存儲器,I/O電路,通訊電路,開關(guān)電源等,是各部分協(xié)調(diào)工作,因此,單就PLC硬體上的維修,具有一定的學(xué)問。PLC型號眾多,但內(nèi)部大同小異,原理基本一樣。今天我就以西門子S7-200PLC為例,談?wù)凱LC硬件維修的一些思路和方法,不但對工控初級維修有指導(dǎo)性的幫助,此文也對PLC初學(xué)者更好的理解PLC這門理論,有積極的幫助。
CPU板為PLC中的核心部件,也是維修當(dāng)中棘手的地方,CPU板出問題會導(dǎo)致PLC故障燈常亮,PLC不運行,現(xiàn)就CPU板各元件說明如下:1:CPU元件:即中央處理單元(CPU)是可編程邏輯控制器的控制中樞。
二額定功率電動機的額定功率是指輸出功率,即軸功率,也稱容量大小,是電動機標(biāo)志性參數(shù)