常見現(xiàn)象
做上位機開發(fā)躬厌,經(jīng)常有小伙伴反映自己的西門子PLC通信不上浊洞,今天就西門子PLC通信注意的幾個地方做下說明,希望大家可以牢記心中剪撬。
1、?PLC側(cè)需要設(shè)置勾選允許來自遠(yuǎn)程對象的Put/Get通信訪問
對于西門子1200/1500系列悠反,必須要勾選允許Put/Get訪問残黑,對于200Smart/300/400,則不需要斋否。
2梨水、對于DB塊讀寫,需要去除DB優(yōu)化訪問
對于基于博圖開發(fā)S7-1200/1500的項目茵臭,如果要與DB塊數(shù)據(jù)通信疫诽,需要要去除DB的優(yōu)化的塊訪問,對于200Smart/300/400,則不需要奇徒。如果希望通過標(biāo)簽通信雏亚,可以采用OPCUA。
3摩钙、務(wù)必保證通信地址是有效地址
通信地址是有效地址罢低,這句話該怎么去理解呢?因為PLC大多數(shù)是基于存儲區(qū)的胖笛,每個地址肯定是隸屬于某個存儲區(qū)网持,大家都知道西門子PLC自帶的存儲區(qū)有I區(qū)、Q區(qū)长踊、M區(qū)功舀、T區(qū)、C區(qū)之斯,但是對于常用的DB存儲區(qū)是沒有的日杈,需要自己去創(chuàng)建,也就意味著佑刷,如果你要讀取DB地址莉擒,必須要提前創(chuàng)建好DB存儲區(qū),除此以外瘫絮,DB存儲區(qū)創(chuàng)建之后涨冀,默認(rèn)是沒有字節(jié)的,需要自己一個個添加變量麦萤,才能形成有效存儲區(qū)鹿鳖,因此一個DB存儲區(qū)的范圍是有限并且可見的(可以通過偏移量看出來)。舉例說明壮莹,下圖是一個DB存儲區(qū)翅帜,說明這個存儲區(qū)有86個字節(jié),如果你通信的地址超過這個范圍命满,肯定就會出問題涝滴。這點其實也很容易理解,我們把與PLC通信當(dāng)做從服務(wù)器拿東西胶台,如果我們要拿的東西歼疮,服務(wù)器都沒有,那么是不是會出問題呢诈唬?
經(jīng)驗分享
下面再給大家分享韩脏,如果出問題之后,我們?nèi)绾慰焖俣ㄎ粏栴}铸磅,解決問題赡矢?
1杭朱、我們首先要Ping一下PLC的IP地址,保證物理網(wǎng)絡(luò)是正常的吹散,一定要記住Ping通只能證明網(wǎng)絡(luò)沒問題痕檬,并不能代表一定可以通信。
2送浊、西門子S7協(xié)議是基于TCP的,所以我們接下來可以用網(wǎng)絡(luò)調(diào)試助手去連接PLC丘跌,IP地址填寫PLC的IP地址袭景,端口號填寫102。
3闭树、用通信測試平臺測試變量耸棒,記住這里最好先測試M存儲區(qū),如MD100报辱。
4与殃、如果通信測試平臺可以,說明PLC端設(shè)置基本上都沒問題了碍现,但是如果這時候配置軟件仍然有問題幅疼,可以先刪除所有的組,只創(chuàng)建一個通信組昼接,并且把存儲區(qū)選擇M存儲區(qū)爽篷。
5、如果上面的單個M存儲區(qū)可以慢睡,一般就是你通信組配置的問題了逐工,可以將所有的通信組的Active激活都取消,然后逐個開啟漂辐,定位是哪個或者哪幾個通信組的問題泪喊,然后再找原因。
在上位機通信中髓涯,遇到PLC連接不上的情況袒啼,大家可以先按照上面的方法排查一下。
我是新閣上位機開發(fā)的付老師复凳,用我的專業(yè)瘤泪,成就你的夢想!