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

西門(mén)子CPU模塊6ES7314-6BG03-0AB0
置預(yù)置值(HSC0為SMD42),計(jì)數(shù)器計(jì)到這個(gè)值可以產(chǎn)生一個(gè)中斷,一般利用這個(gè)中斷調(diào)用相應(yīng)的中斷程序把當(dāng)前值(SMD38)復(fù)零,否則計(jì)數(shù)器到頭就不再計(jì)數(shù)了,當(dāng)然你也可以置一個(gè)大點(diǎn)的值,在其他程序中清除當(dāng)前值(SMD38),確保永遠(yuǎn)到不了頭就可以了。
2.5 中斷程序(ATCH),中斷事件是12,程序號(hào)看你程序了
2.6 打開(kāi)中斷(ENI),這條指令沒(méi)有的話,2.5是不起作用的
2.7 啟動(dòng)高速計(jì)數(shù)器(HSC),按前面的初始化,你就要啟動(dòng)HSC0,即N為0
3、程序中讀取高速計(jì)數(shù)器的值,對(duì)于HSC0,HC0單元中的內(nèi)容就是當(dāng)前的計(jì)數(shù)值,這個(gè)單元只讀不能寫(xiě),你可以通過(guò)修改SMD38的內(nèi)容改變當(dāng)前的計(jì)數(shù)值。
西門(mén)子S7-200的自由口通信需要通過(guò)編程設(shè)置串口的工作模式,安排發(fā)送和接受指令的觸發(fā)順序,還要設(shè)定接收的起始和結(jié)束條件。對(duì)于剛剛開(kāi)始使用s7-200的電氣工程師來(lái)說(shuō),的確有很多細(xì)微處易犯錯(cuò)誤。一般碰到客戶抱怨通信不上的問(wèn)題,就要逐一幫客戶確認(rèn)編程配置是否正確。雖然麻煩,不過(guò)逐條查下去,總能查到錯(cuò)誤所在并解決問(wèn)題。但是有一次客戶遇到的問(wèn)題頗出人意料,還真耗費(fèi)了一些時(shí)間。
客戶反應(yīng)在編寫(xiě)了自由口通信程序之后,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ō)用常開(kāi)點(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è)試,是可以接收到的。眼見(jiàn)這幾個(gè)常見(jiàn)錯(cuò)誤都沒(méi)能cover住這個(gè)問(wèn)題,我只好從頭一步步地跟客戶確認(rèn)。但是還是沒(méi)能發(fā)現(xiàn)任何破綻。郁悶之下,只好讓客戶把程序發(fā)過(guò)來(lái)看看。
一次檢查程序的時(shí)候還真沒(méi)注意到問(wèn)題出在哪里。等到看出來(lái)了才覺(jué)得啼笑皆非:
不知道大家看出來(lái)沒(méi)有?客戶在設(shè)定完空閑線時(shí)間SMW90和消息定時(shí)器溢出值SMW92后,慣性地將接受地大字符數(shù)SMB94也寫(xiě)成了傳送字 SMW94。而西門(mén)子PLC的高低字節(jié)是逆序的,也就是說(shuō)SMB94為高有效字節(jié),SMB95為低有效字節(jié)。見(jiàn)手冊(cè)中的如下說(shuō)明:
西門(mén)子CPU模塊6ES7314-6BG03-0AB0