工控行業(yè)的小伙伴們都知道以前在中低端PLC市場(chǎng)西門(mén)子有S7-200系列產(chǎn)品,但是細(xì)心的你也許早就發(fā)現(xiàn),S7-200系列PLC在組態(tài)編程上都與S7-300/400系列有很大的不同。 S7-300/400系列PLC用Step7(或博途)組態(tài)和編程,而S7-200用Step7 Micro/Win組態(tài)和編程,這幾乎就是一個(gè)全新的平臺(tái),對(duì)于Step7很熟悉的人也需要從新開(kāi)始學(xué)習(xí)。同樣是西門(mén)子的產(chǎn)品,差別怎么就這么大呢?
這是因?yàn)?/span>S7-200系列PLC是西門(mén)子收購(gòu)了一家美國(guó)公司開(kāi)發(fā)的產(chǎn)品,從S7-200 的編程模式可以看到一些美日式PLC的影子。雖然西門(mén)子在中高端PLC市場(chǎng)做的風(fēng)生水起,但是沒(méi)有自己的中低端PLC產(chǎn)品一直是西門(mén)子的一個(gè)心病。
終于,S7-1200系列PLC面世了。
與S7-200系列不同,S7-1200是純德國(guó)血統(tǒng),可以用西門(mén)子的通用軟件平臺(tái)博途(TIA)組態(tài)和編程。
S7-1200支持經(jīng)典的編程語(yǔ)言:梯形圖(LADDER)和方框圖(FDB),同時(shí)還支持SCL,熟悉計(jì)算機(jī)高級(jí)語(yǔ)言的人可以很快上手。
S7-1200支持布爾量,字節(jié),字,整形,雙字,日期時(shí)間類(lèi)型,用戶(hù)自定義類(lèi)型等數(shù)據(jù)類(lèi)型,很少見(jiàn)到一個(gè)中低端的PLC支持這么多數(shù)據(jù)類(lèi)型;
S7-1200支持PID調(diào)節(jié),集成HMI顯示,集成ProfiNet網(wǎng)絡(luò),支持Profibus-DP網(wǎng)絡(luò),支持第三方通信。還有一點(diǎn)很重要,顏值很高,如下圖:
S7-1200系列PLC性?xún)r(jià)比高,完全能勝任很多中小型的生產(chǎn)線(xiàn),個(gè)人認(rèn)為將在中小規(guī)模的自動(dòng)化市場(chǎng)有不錯(cuò)的應(yīng)用前景。
S7-1200可以通過(guò)CM(Communication Module)1241和CB(Communication Board)來(lái)進(jìn)行串口的通信。CM只能安裝在CPU的左側(cè)或者另一個(gè)CM的左側(cè),S7-1200最多支持三個(gè)CM模塊,加上CB模板,總共最多支持四個(gè)通信接口。
今天我們先來(lái)聊聊S7-1200的串口通信模塊CM1241。
西門(mén)子根據(jù)電氣接口的不同,把CM1241分成了三種產(chǎn)品,CM1241-RS232,CM1241-RS485,CM1241-RS422\485。
CM1241的端口都是隔離的;均由CPU進(jìn)行供電,不需要提供外部電源;可以通過(guò)LED查看通信的發(fā)送和接收;與以往的模塊的不同之處是它增加了一個(gè)診斷LED燈,可以從診斷組態(tài)的狀態(tài),其含義如下:
紅閃:CPU沒(méi)有找到CM模塊,可能CPU還未上電;
綠閃:CPU找到了CM模塊,但尚未組態(tài);
綠常亮:CPU找到了CM模塊,并且組態(tài)正確;
CM1241-RS232模塊外貌如下圖:
CM1241-RS232模塊的電氣接口(公頭)如下:
CM1241-RS422\485模塊的電氣接口(母頭)如下:
關(guān)于這些接口的含義及如何連線(xiàn),如果你有不清楚的地方,請(qǐng)看我前面發(fā)表的文章;
下面以CM1241-RS232為例來(lái)談?wù)動(dòng)布M態(tài)和編程:
在硬件目錄-通信模塊'Communication modules'-點(diǎn)對(duì)點(diǎn)'point to point'下有3中模塊可以選擇,CM1241(RS232)\CM1241(RS485)\CM1241(RS422\485),如下圖:
我們選擇RS232,訂貨號(hào):6ES7 241-1AH32-0XB0,將其添加到PLC的左側(cè)。
注意:在S7-1200中,CM模塊只能添加到PLC的左側(cè)或者另一個(gè)CM模塊的左側(cè),如下圖:
設(shè)置模塊的屬性參數(shù):
點(diǎn)擊'屬性(property)',選擇'RS232接口(Interface)'-'端口配置(port config)',在這里,可以配置波特率、數(shù)據(jù)位、停止位、校驗(yàn)位及流控制等參數(shù):
軟件編程指令在'Communication'-'Communication processor'-'Point-to-Point'中:
先來(lái)看看數(shù)據(jù)發(fā)送,選擇功能塊SEND_PTP,系統(tǒng)會(huì)自動(dòng)生成一個(gè)背景數(shù)據(jù)塊:
這個(gè)DB是發(fā)送塊SEND_PTP私有的,然后我們還需要新建一個(gè)全局?jǐn)?shù)據(jù)塊(Global DB),來(lái)作為發(fā)送緩沖區(qū),存放我們需要發(fā)送的數(shù)據(jù)。雙擊'添加塊'-選擇'全局?jǐn)?shù)據(jù)塊(Global DB)' ,給DB塊起個(gè)名字,例如'DB_Send_Buffer':
在新建的DB塊中添加你要發(fā)送的數(shù)據(jù),設(shè)置默認(rèn)值,例如'Founder chip is the best':
然后調(diào)用SEND_PTP功能塊發(fā)送數(shù)據(jù):
如果你定義了發(fā)送的數(shù)據(jù)是'String'類(lèi)型的話(huà),要注意起始地址從第2個(gè)字節(jié)(起始編號(hào)為0)開(kāi)始,如上圖:DB3.DBX2.0,這是因?yàn)镾tring類(lèi)型的第0個(gè)字節(jié)是總字節(jié)數(shù),第1個(gè)字節(jié)是當(dāng)前字符串的字節(jié)數(shù),從第2個(gè)字節(jié)開(kāi)始是字符串的首字節(jié),如下圖的示例:
輸入?yún)?shù):
REQ:請(qǐng)求發(fā)送數(shù)據(jù),上升沿;
PORT:硬件組態(tài)中模塊的ID
BUFFER:發(fā)送緩沖區(qū)的地址
LENGTH:發(fā)送數(shù)據(jù)的長(zhǎng)度
PTRCL:協(xié)議是西門(mén)子專(zhuān)用的還是通用的
輸出參數(shù):
DONE:發(fā)送成功且沒(méi)有錯(cuò)誤
ERROR:發(fā)送失敗,有錯(cuò)誤發(fā)生
STATUS:如果發(fā)送有錯(cuò)誤,存放錯(cuò)誤代碼
以上介紹的是數(shù)據(jù)的發(fā)送,接下來(lái)我們看看數(shù)據(jù)是如何接收的:
添加接收數(shù)據(jù)使用功能塊RCV_PTP,會(huì)出現(xiàn)下列背景DB對(duì)話(huà)框,選擇添加:
定義好接收數(shù)據(jù)緩存區(qū)后,就可以調(diào)用接收塊接收數(shù)據(jù)了。RCV_PTP的參數(shù)定義如下:
輸入?yún)?shù):
EN_R:允許接收數(shù)據(jù)
PORT:硬件組態(tài)中模塊的ID
BUFFER:接收緩沖區(qū)的地址
輸出參數(shù):
NDR:是否接收到新數(shù)據(jù),布爾量
ERROR:接收過(guò)程中有錯(cuò)誤發(fā)生
STATUS:如果有錯(cuò)誤發(fā)送,存放錯(cuò)誤代碼
LENGTH:接收緩沖區(qū)的數(shù)據(jù)的長(zhǎng)度
到這里我們就把CM1241串口模塊給大家介紹完了,如果你在現(xiàn)場(chǎng)實(shí)踐中遇到了一些其它的問(wèn)題,歡迎和我們聯(lián)系,溝通交流。
聯(lián)系客服