2024河南省周口市SIEMENS西門子(授權)中國華中地區一級總代理商
| 更新時間 2024-12-27 09:10:00 價格 請來電詢價 變頻器 西門子代理商 觸摸屏 西門子一級代理 伺服電機 西門子一級總代理 聯系電話 18126392341 聯系手機 15267534595 聯系人 梁濤 立即詢價 |
Zui近在用1200通過Modbus-RTU采集某流量傳感器的數據,西門子側選擇的是CM1241(RS422/485)(訂貨號是6ES7 241-1CH32-0XB0,固件版本V2.2),CPU是1214C,固件版本是V4.2,自認為調試應該很簡單,但是卻花費了很多時間,并查閱了很多資料、視頻,才實現了通訊。下面逐步介紹一下步驟,可能的坑及解決辦法。
1、硬件接線
通訊卡9針插座的3和8針用于485通訊(Modbus的通訊),西門子手冊上標識為:3+(B),8-(A),流量傳感器上標識為A+、B-。通訊不通時,我在這兒折騰了很久,后來用萬用表直接測量電壓搞定,原則:不用理會AB,直接測量電壓,+對+,-對-即可。未通訊時,電壓在3-5VDC之間。
2、硬件配置
基本配置(要與從站保持一致),記下硬件標識符:這里是269。
3、端口初始化編程
注意選擇V3.1這一套程序,不要與下面的V2.2程序混用(注意這套程序的版本限制“使用CM1241 自固件版本V2.1起...”)。
初始化程序放置在OB1循環調用的子程序里,官方提醒不要放在OB100(啟動程序里),設置好參數(與硬件里的基本一致),自動生成頂部的背景數據塊(這里是DB1)。
打開DB1,將里面的MODE修改成4,其他保持默認值(這也是個大坑,誰會想著去修改背景數據塊?所有需要修改的應該都通過接口參數開放出來呀!)。
MB_DB要與后面的Modbus_Master的背景數據塊保持一致,在創建Modbus_Master時,會自動生成,然后再回過頭來修改,我這邊為DB2。
4、創建讀寫指令
我這邊用到了輪詢,所以,程序相對復雜,會調用多個Modbus_Master模塊(注意:他們必須用相同的背景數據塊,不要每次都新建)。如果只是單站讀取,REQ端用時鐘脈沖即可。REQ是上升沿觸發,如果常置位,則只會進行一次讀取,因此用時鐘脈沖可以周期讀取。
MB_ADDR是從站地址,MODE是模式,與DATA_ADDR配合,在后臺生成標準的MODBUS指令,比如,我要實現傳感器廠家的指令幀:
起始地址是0x800E,轉換成十進制地址是32782,功能碼是0x03
通過Modbus_Master的幫助可以看到,我的MODE要選擇0,DATA_ADDR填寫:432782(實際上由于是否從0開始的問題,這兒Zui終填寫的是432783)
這樣,就可以讀取了。
5、Zui快速度輪詢時的效果
我用錄波軟件PLC-Recorder對于采集回的值、輪詢指令等進行了錄波,以10ms的速度記錄,從這個波形上可以看到,實際輪詢周期能達到100ms(我這里有兩個從站):
將其中一個傳感器斷電,制造單站故障后的輪詢周期大都加長,達到了600ms(因為要等待超時):
6、如果通訊怎么都不通時,怎么判斷?
首先要利用調試軟件方便測試PLC和傳感器。對于傳感器,可以用廠家調試軟件,配合USB轉485的接口進行測試,確定通訊參數和狀態好壞。
對于PLC,有朋友利用MODBUS從站模擬軟件進行測試(我沒有找到),也可以打開模塊上部的蓋板,查看發送燈是否亮來判斷,模塊是不是已經啟用。正常輪詢時,發送和接收都會黃燈閃爍的。
聯系方式
- 電 話:18126392341
- 聯系人:梁濤
- 手 機:15267534595
- 微 信:15267534595