湖南嶸晟時(shí)代自動(dòng)化科技有限公司:長(zhǎng)期銷售西門子全系列

西門子6ES7321-1BL00-4AA2
西門子S7-200的自由口通信需要通過(guò)編程設(shè)置串口的工作模式,安排發(fā)送和接受指令的觸發(fā)順序,還要設(shè)定接收的起始和結(jié)束條件。對(duì)于剛剛開始使用s7-200的電氣工程師來(lái)說(shuō),的確有很多細(xì)微處易犯錯(cuò)誤。一般碰到客戶抱怨通信不上的問(wèn)題,就要逐一幫客戶確認(rèn)編程配置是否正確。雖然麻煩,不過(guò)逐條查下去,總能查到錯(cuò)誤所在并解決問(wèn)題。但是有一次客戶遇到的問(wèn)題頗出人意料,還真耗費(fèi)了一些時(shí)間。
客戶反應(yīng)在編寫了自由口通信程序之后,PLC可以發(fā)送數(shù)據(jù)給通信伙伴,但是卻收不到任何伙伴方發(fā)出的數(shù)據(jù)。能發(fā)送數(shù)據(jù)給對(duì)方,說(shuō)明通信端口設(shè)置沒(méi)有問(wèn)題。極有可能是端口被其他通信指令占用導(dǎo)致無(wú)法進(jìn)入接收狀態(tài)。比如說(shuō)用常開點(diǎn)調(diào)用XMT,或者沒(méi)有對(duì)接收的故障狀態(tài)進(jìn)行判斷并終止接收,從而導(dǎo)致后續(xù)的XMT和 RCV都無(wú)法被正確執(zhí)行??蛻舯硎舅某绦虿⒉淮嬖谶@種情況。但是為了測(cè)試問(wèn)題所在,客戶下載了一個(gè)僅包含條件觸發(fā)RCV的程序下去,還是接收不到數(shù)據(jù)。監(jiān)控程序RCV指令已被正常執(zhí)行。

那么是不是接收的起始條件設(shè)置不當(dāng)?客戶使用的是起始字符,這并無(wú)不妥。并且改成空閑線檢測(cè)之后,問(wèn)題依然存在。難道是對(duì)方發(fā)送的信號(hào)有問(wèn)題?用串口調(diào)試軟件來(lái)測(cè)試,是可以接收到的。眼見這幾個(gè)常見錯(cuò)誤都沒(méi)能cover住這個(gè)問(wèn)題,我只好從頭一步步地跟客戶確認(rèn)。但是還是沒(méi)能發(fā)現(xiàn)任何破綻。郁悶之下,只好讓客戶把程序發(fā)過(guò)來(lái)看看。
第1次檢查程序的時(shí)候還真沒(méi)注意到問(wèn)題出在哪里。等到看出來(lái)了才覺(jué)得啼笑皆非:
不知道大家看出來(lái)沒(méi)有?客戶在設(shè)定完空閑線時(shí)間SMW90和消息定時(shí)器溢出值SMW92后,慣性地將接受地大字符數(shù)SMB94也寫成了傳送字 SMW94。而西門子PLC的高低字節(jié)是逆序的,也就是說(shuō)SMB94為高有效字節(jié),SMB95為低有效字節(jié)。見手冊(cè)中的如下說(shuō)明:
結(jié)果就是大字符數(shù)100被傳給了SMB95,SMB95是神馬呢?神馬也不是,總之與接收條件無(wú)關(guān)。而真正大字符數(shù)存儲(chǔ)字節(jié)SMB94被賦值為0。大字符數(shù)都為0了,那當(dāng)然是接收不到任何數(shù)據(jù)了。
西門子S7-200系列PLC選擇網(wǎng)絡(luò)通訊設(shè)置及元件的注意事項(xiàng)
S7-200的端口是不隔離的,如果想使網(wǎng)絡(luò)隔離,應(yīng)考慮使用RS-485中繼器或者EM277。
西門子6ES7321-1BL00-4AA2