首先介紹我們的硬件準(zhǔn)備工作
1、一個(gè)支持modbus協(xié)議的溫濕度傳感器
2、查看溫濕度傳感器參數(shù),廠(chǎng)家一般都會(huì)配一個(gè)修改軟件,這里不做修改,用其默認(rèn)值
波特率:9600
數(shù)據(jù)格式:8位數(shù)據(jù)位、無(wú)校驗(yàn)
通訊方式:標(biāo)準(zhǔn)modbus RTU
通訊地址:2
3、確定所要讀取變量地址
溫度實(shí)時(shí)寄存地址為0,對(duì)應(yīng)modbus通訊里的40001
濕度實(shí)時(shí)寄存地址為1,對(duì)應(yīng)modbus通訊里的40002
4、s7-200smartplc一臺(tái)
s7-200smart st20
5、端口連接
將溫濕度傳感器與plc端DB9接口連接
溫濕度傳感器,廠(chǎng)家會(huì)給
plc 485集成接口
準(zhǔn)備工作完畢,接下來(lái)就是編程,因?yàn)檐浖詭odbus庫(kù),直接使用就好
6、初始化主站指令
“模式”(Mode) 輸入的值用于選擇通信協(xié)議。輸入值為 1 時(shí),將 CPU 端口分配給 Modbus 協(xié)議并啟用該協(xié)議。
參數(shù)“奇偶校驗(yàn)”(Parity) 應(yīng)設(shè)置為與 Modbus 從站設(shè)備的奇偶校驗(yàn)相匹配。0(無(wú)奇偶校驗(yàn))
參數(shù)“端口”(Port)設(shè)置物理通信端口(0 = CPU 中集成的 RS-485)。
參數(shù)“超時(shí)”(Timeout) 設(shè)為等待從站做出響應(yīng)的毫秒數(shù)。典型值是 1000 ms (1 s)。
當(dāng) MBUS_CTRL指令完成時(shí),指令將“真”(TURE) 返回給“完成”(Done) 輸出。
“錯(cuò)誤”(Error) 輸出包含指令執(zhí)行的結(jié)果。
以上的參數(shù)設(shè)置與稱(chēng)重儀表端的對(duì)應(yīng)
7、溫濕度傳感器的訪(fǎng)問(wèn)
參數(shù)“從站”(Slave) 是 Modbus 從站設(shè)備的地址。允許范圍為 0 至 247。地址 0 是廣播地址。僅將地址 0 用于寫(xiě)入請(qǐng)求。系統(tǒng)不會(huì)響應(yīng)對(duì)地址 0 的廣播請(qǐng)求。并非所有從站設(shè)備都支持廣播地址。S7-200 SMART Modbus 從站庫(kù)不支持廣播地址。
使用參數(shù) RW 指示是讀取還是寫(xiě)入該消息。0(讀取)
參數(shù)地址 (Addr) 是起始 Modbus 地址。寄存器地址為0,對(duì)應(yīng)Modbus通訊里的地址40001
參數(shù)“計(jì)數(shù)”(Count) 用于分配要在該請(qǐng)求中讀取或?qū)懭氲臄?shù)據(jù)元素?cái)?shù)。讀取儀表中保持寄存器字?jǐn)?shù)。
參數(shù) DataPtr 是間接地址指針,指向 CPU 中與讀請(qǐng)求相關(guān)的數(shù)據(jù)的 V 存儲(chǔ)器。將 DataPtr 設(shè)置為用于存儲(chǔ)從 Modbus 從站讀取的數(shù)據(jù)的第一個(gè) CPU 存儲(chǔ)單元。
地址1的溫濕度數(shù)據(jù)被存入到以VW100為起始的兩個(gè)字,即vw100為溫度,vw102為濕度,這里要注意,整數(shù)轉(zhuǎn)為實(shí)數(shù),最后在除以10,并是最后的溫濕度值
8、編程結(jié)束,我們調(diào)試看下
vw100的溫度為25.4℃,vw102的濕度為74.0%RH
到這里編程結(jié)束,需要源程序的可以關(guān)注私信
下次更新昆侖通泰觸摸屏與s7-200smart ppi通訊設(shè)置