一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

S7-1200串口通信編程

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來(lái)源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 作者:機(jī)器人及PLC自動(dòng)化 ? 2022-07-21 10:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

串口通信編程

指令概述

S7-1200有兩套點(diǎn)對(duì)點(diǎn)通信指令,如圖1所示。

173b24f4-0834-11ed-ba43-dac502259ad0.png

圖1 指令列表

上述兩套指令集區(qū)別如下表:

指令集 適用范圍
PtP Communication S7-1200中央機(jī)架 CPU版本>=V4.1.1,CM1241版本>=V2.1, TIA PORTAL 版本>=V13SP1,CB1241沒(méi)有版本要求
分布式IO CPU版本>=V4.1.1,ET200SP/ET200MP分布式IO的串口模塊
點(diǎn)到點(diǎn) S7-1200中央機(jī)架 CPU、TIA PORTAL、CM1241、CB1241 均沒(méi)有版本限制

建議使用PtP Communication指令集的指令,因?yàn)橹噶詈蚐7-1500兼容,并且指令版本一直在更新,點(diǎn)到點(diǎn)指令集不再更新,建議只用于老項(xiàng)目升級(jí)。

指令說(shuō)明

對(duì)于如圖2中的指令,這些是用于在線(xiàn)修改串口模塊硬件組態(tài)的指令,例如在線(xiàn)修改波特率,在線(xiàn)修改接收條件。一般不需要使用,具體使用可以參見(jiàn)TIA PORTAL幫助或者S7-1200系統(tǒng)手冊(cè)。

17b2b9f6-0834-11ed-ba43-dac502259ad0.png

圖2 組態(tài)指令

對(duì)于如圖3中的指令,這些是用于硬流控操作的指令,通過(guò)信號(hào)設(shè)置激活相關(guān)的接收發(fā)送。除非使用硬流控,否則不需要使用,具體使用可以參見(jiàn)TIA PORTAL幫助或者S7-1200系統(tǒng)手冊(cè)。

17cc4e0c-0834-11ed-ba43-dac502259ad0.png

圖3 流控指令

對(duì)于如圖4中的指令,這些是用于實(shí)現(xiàn)一些擴(kuò)展功能的指令,例如與第三方設(shè)備非標(biāo)準(zhǔn)MODBUS通信,伙伴不需要CRC校驗(yàn),可以使用該指令禁用MODBUS CRC。一般不需要使用,具體使用可以參見(jiàn)TIA PORTAL幫助或者S7-1200系統(tǒng)手冊(cè)。

185b4616-0834-11ed-ba43-dac502259ad0.png

圖4 擴(kuò)展功能

對(duì)于如圖5中的指令,這些是用于清除通信模塊接收緩沖區(qū)的指令。

18704a5c-0834-11ed-ba43-dac502259ad0.png

圖5 清除緩沖區(qū)

對(duì)于一般情況下的自由口通信,都是只使用如圖6中的發(fā)送接收指令。

18870d64-0834-11ed-ba43-dac502259ad0.png

圖6 發(fā)送接收

18fdd32c-0834-11ed-ba43-dac502259ad0.png

圖7 發(fā)送指令

Send_P2P SEND_PTP
EN 使能,建議常接通
REQ 發(fā)送觸發(fā)信號(hào),使用沿觸發(fā)
PORT 串口硬件模塊標(biāo)識(shí)符,可以在PLC變量表中找到,如圖9所示
BUFFER 發(fā)送區(qū),一般使用P#指針形式,String類(lèi)型或者WString類(lèi)型,字符數(shù)組等,如果使用String類(lèi)型或者WString類(lèi)型,則伙伴方收到時(shí)不會(huì)看到字符串前面的最大長(zhǎng)度和實(shí)際長(zhǎng)度,也就是說(shuō)相當(dāng)于發(fā)送的是字符數(shù)組。
LENGTH 實(shí)際發(fā)送的字節(jié)數(shù),如果為0,則是全部發(fā)送
PCTRL - 沒(méi)有意義
DONE 將數(shù)據(jù)發(fā)送至通信模塊發(fā)送緩沖區(qū)完成,將有一個(gè)掃描周期置位
ERROR 發(fā)送錯(cuò)誤,將有一個(gè)掃描周期置位
STATUS 通常顯示狀態(tài)代碼,錯(cuò)誤時(shí)會(huì)在ERROR為1的周期顯示錯(cuò)誤信息(16#8xxx)

191049ee-0834-11ed-ba43-dac502259ad0.png

圖8 接收指令

Receive_P2P RCV_PTP
EN 為T(mén)rue時(shí),如果通信模塊接收緩沖區(qū)有數(shù)據(jù),則將其傳送至BUFFER 使能,建議常接通
EN_R - 為T(mén)rue時(shí),如果通信模塊接收緩沖區(qū)有數(shù)據(jù),則將其傳送至BUFFER
PORT 串口硬件模塊標(biāo)識(shí)符,可以在PLC變量表中找到,如圖9所示
BUFFER 接收區(qū),一般使用P#指針形式,String類(lèi)型或者WString類(lèi)型,字符數(shù)組等,如果使用String類(lèi)型或者WString類(lèi)型,則即使伙伴方發(fā)送的是字符數(shù)組,指令也會(huì)為字符數(shù)組添加最大長(zhǎng)度和實(shí)際長(zhǎng)度成為字符串。
NDR 將通信模塊接收緩沖區(qū)的數(shù)據(jù)接收至BUFFER完成,將有一個(gè)掃描周期置位

如果EN_R為T(mén)rue時(shí),則將通信模塊接收緩沖區(qū)的數(shù)據(jù)接收至BUFFER完成,將有一個(gè)掃描周期置位
如果EN_R為False,則通信模塊接收緩沖區(qū)有數(shù)據(jù)時(shí)NDR將始終為T(mén)rue

ERROR 指令錯(cuò)誤,將有一個(gè)掃描周期置位
STATUS 通常顯示狀態(tài)代碼,錯(cuò)誤時(shí)會(huì)在ERROR為1的周期顯示錯(cuò)誤信息(16#8xxx)
LENGTH 在接收完成時(shí),將有一個(gè)掃描周期顯示接收到的字節(jié)數(shù)

1929449e-0834-11ed-ba43-dac502259ad0.jpg如果通信模塊接收緩沖區(qū)包含有n次接收到的數(shù)據(jù),則需要Receive_P2P EN/RCV_PTP EN_R n個(gè)掃描周期為T(mén)rue才能接收至BUFFER完成。

一般建議Receive_P2P EN/RCV_PTP EN_R常通或者接通一段時(shí)間而不是使用沿觸發(fā),這樣通信模塊接收緩沖區(qū)一旦接收到新數(shù)據(jù),就可以立即接收至BUFFER。如果可能,可以把接收指令放在循環(huán)OB內(nèi)盡可能快的調(diào)用。

199ffec2-0834-11ed-ba43-dac502259ad0.png

圖9 系統(tǒng)常量

①在CPU中選擇PLC變量表>默認(rèn)變量表

②選擇系統(tǒng)常量

③找到相關(guān)串口模塊,建議直接將模塊名稱(chēng)復(fù)制到PORT處

發(fā)送指令、發(fā)送完成位、發(fā)送錯(cuò)誤位、發(fā)送錯(cuò)誤代碼

下面分為點(diǎn)對(duì)點(diǎn)指令與PtP Communication 指令分別介紹

19bf150a-0834-11ed-ba43-dac502259ad0.png

圖10 點(diǎn)到點(diǎn)發(fā)送相關(guān)指令

19cb2e4e-0834-11ed-ba43-dac502259ad0.png

圖10 PtP Communication 發(fā)送相關(guān)指令

程序段1:觸發(fā)發(fā)送

程序段2:發(fā)送完成位觸發(fā)一個(gè)全局變量自加一,每完成一次該變量加一個(gè)數(shù),可以通過(guò)這種方法檢測(cè)是否發(fā)送完成

程序段3:發(fā)送錯(cuò)誤位觸發(fā)一個(gè)MOVE指令,當(dāng)發(fā)送錯(cuò)誤到來(lái)時(shí),通過(guò)這種方法將STATUS的變量移動(dòng)到一個(gè)全Word類(lèi)型全局變量,發(fā)送錯(cuò)誤代碼將保存到該變量中

接收指令、接收完成位、接收錯(cuò)誤位、接收錯(cuò)誤代碼、接收長(zhǎng)度

下面分為點(diǎn)對(duì)點(diǎn)指令與PtP Communication 指令分別介紹

1a5993be-0834-11ed-ba43-dac502259ad0.png

圖12 點(diǎn)到點(diǎn)接收相關(guān)指令

1a755f04-0834-11ed-ba43-dac502259ad0.png

圖13 PtP Communication 接收相關(guān)指令

程序段4:觸發(fā)接收

程序段5:接收完成位觸發(fā)一個(gè)全局變量自加一,每完成一次該變量加一個(gè)數(shù),可以通過(guò)這種方法檢測(cè)是否接收完成,同時(shí)將長(zhǎng)度變量通過(guò)一個(gè)MOVE指令移動(dòng)到一個(gè)UInt類(lèi)型全局變量,接收長(zhǎng)度將保存到該變量中

程序段6:接收錯(cuò)誤位觸發(fā)一個(gè)MOVE指令,接收送錯(cuò)誤到來(lái)時(shí),通過(guò)這種方法將STATUS的變量移動(dòng)到一個(gè)Word類(lèi)型全局變量,接收錯(cuò)誤代碼將保存到該變量中

輪詢(xún)編程

通信任務(wù):

1號(hào)站S7-1200使用CB1241,利用點(diǎn)對(duì)點(diǎn)指令發(fā)送接收。

2號(hào)站S7-1200使用ET200SP分布式IO的CMPTP模塊,利用PtP Communication 指令發(fā)送接收。

1號(hào)站發(fā)送字符串'西門(mén)子',2號(hào)站發(fā)送字符串'博大精深'。

1929449e-0834-11ed-ba43-dac502259ad0.jpg注:例子中1號(hào)站先發(fā)送,2號(hào)站先接收,實(shí)際取決于需要,對(duì)于PLC來(lái)說(shuō),先發(fā)送還是先接收都是可以的。

例子中使用系統(tǒng)存儲(chǔ)器FirstScan,激活方式如圖14所示。

1af6ce7c-0834-11ed-ba43-dac502259ad0.png

圖14 設(shè)置系統(tǒng)存儲(chǔ)器

①進(jìn)入CPU的設(shè)備視圖

②在屬性>常規(guī)下選中系統(tǒng)和時(shí)鐘存儲(chǔ)器

③激活啟用系統(tǒng)存儲(chǔ)器字節(jié),默認(rèn)MB1

④即為FirstScan變量,默認(rèn)M1.0

圖15為1號(hào)站輪詢(xún):

1b30852c-0834-11ed-ba43-dac502259ad0.png

圖15 1號(hào)站輪詢(xún)

①使用系統(tǒng)存儲(chǔ)器“FirstScan”激活第一次的發(fā)送

②發(fā)送DONE位置位接收請(qǐng)求,復(fù)位發(fā)送請(qǐng)求

③觸發(fā)接收

④接收NDR位置位發(fā)送請(qǐng)求,復(fù)位接收請(qǐng)求

⑤觸發(fā)下一次的發(fā)送

圖16為2號(hào)站輪詢(xún):

1b5e912e-0834-11ed-ba43-dac502259ad0.png

圖16 2號(hào)站輪詢(xún)

①使用系統(tǒng)存儲(chǔ)器“FirstScan”激活第一次的接收

②接收NDR位的上升沿置位接收請(qǐng)求,復(fù)位發(fā)送請(qǐng)求

③觸發(fā)發(fā)送

④發(fā)送DONE位置位接收請(qǐng)求,復(fù)位發(fā)送請(qǐng)求

⑤觸發(fā)下一次的接收

通信結(jié)果

1b8dc8d6-0834-11ed-ba43-dac502259ad0.png

圖17 通信結(jié)果

常見(jiàn)問(wèn)題

1baf3944-0834-11ed-ba43-dac502259ad0.jpg如何處理對(duì)于字符串、字符數(shù)組等的發(fā)送接收?

考慮到PLC通常與第三方進(jìn)行自由口通信,而通信內(nèi)容通常是字符串,但是西門(mén)子的SIMATIC String或者WString是包含最大長(zhǎng)度與實(shí)際長(zhǎng)度的,而第三方的字符串對(duì)于西門(mén)子來(lái)說(shuō)是Char數(shù)組或者WChar數(shù)組。

基于此點(diǎn)對(duì)點(diǎn)及PtP Communication 指令集均對(duì)字符串、字符數(shù)組的發(fā)送接收進(jìn)行了優(yōu)化,即:

第三方伙伴發(fā)送字符數(shù)組,PLC的接收指令BUFFER類(lèi)型為字符數(shù)組,則接收成字符數(shù)組,BUFFER類(lèi)型為字符串,則接收成字符串,接收指令自動(dòng)將字符串的最大長(zhǎng)度和實(shí)際長(zhǎng)度補(bǔ)齊。

第三方伙伴接收字符數(shù)組,PLC的發(fā)送指令BUFFER類(lèi)型為字符數(shù)組,則發(fā)送字符數(shù)組,BUFFER類(lèi)型為字符串,同樣發(fā)送字符數(shù)組,發(fā)送指令自動(dòng)將字符串的最大長(zhǎng)度和實(shí)際長(zhǎng)度去掉。

簡(jiǎn)單的說(shuō)PLC會(huì)按照字符數(shù)組的形式收發(fā),發(fā)送或者接收BUFFER如果是字符串,則會(huì)進(jìn)行相應(yīng)的轉(zhuǎn)換。以上面輪詢(xún)?yōu)槔?,參?jiàn)圖18圖19。

1bc396e6-0834-11ed-ba43-dac502259ad0.png

圖18 修改2號(hào)站的發(fā)送接收區(qū)的String類(lèi)型改為Char數(shù)組

1bda98dc-0834-11ed-ba43-dac502259ad0.png

圖19 收發(fā)結(jié)果

可以得知,1號(hào)站發(fā)送字符串‘123’,2號(hào)站接收到字符數(shù)組,每個(gè)字符分別是'1'、'2'、'3'。2號(hào)站發(fā)送字符數(shù)組,每個(gè)字符分別是'a'、'b'、'c',1號(hào)站接收到字符串為'abc'。


審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95243
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1639

    瀏覽量

    56806
  • S7-1200
    +關(guān)注

    關(guān)注

    11

    文章

    333

    瀏覽量

    18622

原文標(biāo)題:串口通信編程

文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    西門(mén)子PLC(S7-1200/1500/300/400)的數(shù)據(jù)采集與監(jiān)控方案

    西門(mén)子PLC S7-1200S7-1500、S7-300/400型號(hào)設(shè)備,常用協(xié)議:PPI(Process Communication Interface)、PLC與上位機(jī)、HMI數(shù)據(jù)交換
    的頭像 發(fā)表于 07-04 10:13 ?217次閱讀

    西門(mén)子S7-1200 G2的7大亮點(diǎn)及最新功能

    西門(mén)子S7-1200 G2是新發(fā)布的新一代可編程邏輯控制器(PLC),作為S7-1200系列的升級(jí)版,它在硬件設(shè)計(jì)、性能、運(yùn)動(dòng)控制、通信能力和安全功能等方面進(jìn)行了顯著改進(jìn),適用于中小型
    的頭像 發(fā)表于 07-03 17:04 ?308次閱讀
     西門(mén)子<b class='flag-5'>S7-1200</b> G2的<b class='flag-5'>7</b>大亮點(diǎn)及最新功能

    S7-200Smart與S7-1200通過(guò)Modbus協(xié)議對(duì)接到上位機(jī)

    在自動(dòng)化生產(chǎn)車(chē)間中,分布多臺(tái)PLC自動(dòng)化設(shè)備,如包裝機(jī)(S7-200Smart)、灌裝產(chǎn)線(xiàn)(S7-1200)需要用上位機(jī)軟件集中控制。這些設(shè)備距離在幾米到幾十米不等。通常會(huì)考慮有線(xiàn)或者無(wú)線(xiàn)通信,選擇
    的頭像 發(fā)表于 06-10 14:30 ?263次閱讀
    <b class='flag-5'>S7</b>-200Smart與<b class='flag-5'>S7-1200</b>通過(guò)Modbus協(xié)議對(duì)接到上位機(jī)

    PL2303串口驅(qū)動(dòng)

    PL2303串口驅(qū)動(dòng)
    發(fā)表于 04-09 16:02 ?2次下載

    cp2102串口驅(qū)動(dòng)

    cp2102串口驅(qū)動(dòng)
    發(fā)表于 04-09 16:01 ?6次下載

    STM32串口下載軟件(FLYMCU)

    STM32串口下載軟件(FLYMCU),經(jīng)典版本,親試可用。
    發(fā)表于 04-09 15:59 ?2次下載

    S7-1200與歐姆龍智能儀表Modbus通信案例

    Modbus 通信是一種應(yīng)用廣泛的通信協(xié)議 ,在變頻器、智能儀表或是其他的一些智能設(shè)備上應(yīng)用的一種通用通信協(xié)議,本文以S7-1200系列PLC作為Modbus主站,以歐姆龍E5EZ的智
    的頭像 發(fā)表于 03-27 17:25 ?719次閱讀
    <b class='flag-5'>S7-1200</b>與歐姆龍智能儀表Modbus<b class='flag-5'>通信</b>案例

    用Labview寫(xiě)一個(gè)電子稱(chēng)的485串口程序

    關(guān)鍵詞:Labview + 串口程序 232、485串口通訊是最常見(jiàn)的儀器儀表通訊方式之一,本文詳細(xì)介紹,用Labview編寫(xiě)一個(gè)電子秤的485串口程序.
    的頭像 發(fā)表于 03-06 09:54 ?724次閱讀
    用Labview寫(xiě)一個(gè)電子稱(chēng)的485<b class='flag-5'>串口</b>程序

    3.5英寸高清智能串口屏 8位MCU并口通信的COG裸屏 或帶驅(qū)動(dòng)板232串口通信的智能屏

    3.5英寸高清智能串口屏 8位MCU并口通信的COG裸屏 或帶驅(qū)動(dòng)板232串口通信的智能屏
    的頭像 發(fā)表于 02-18 14:49 ?417次閱讀
    3.5英寸高清智能<b class='flag-5'>串口</b>屏 8位MCU并口<b class='flag-5'>通信</b>的COG裸屏 或帶驅(qū)動(dòng)板232<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的智能屏

    MSC1201串口編程如何實(shí)現(xiàn)?

    我有個(gè)溫度變送器用的是MSC1201我想對(duì)它進(jìn)行串口編程,需要TI DOWNLOADER,MSC1201串口編程如何實(shí)現(xiàn),在電路板上有接口,接口腳為T(mén)XRXPSEN. 那里有TIDO
    發(fā)表于 02-13 06:36

    分布式IO模塊與S7-1200 PLC:打造高效分揀系統(tǒng)的新引擎

    在現(xiàn)代化物流中心,快速、高效、準(zhǔn)確的包裹分揀是衡量整個(gè)系統(tǒng)性能的關(guān)鍵指標(biāo)。為了實(shí)現(xiàn)這一目標(biāo),國(guó)產(chǎn)IO模塊與西門(mén)子S7-1200 PLC的結(jié)合應(yīng)用,正成為越來(lái)越多企業(yè)的首選方案。這一組合不僅優(yōu)化了數(shù)據(jù)采集和處理流程,還顯著提升了分揀效率,降低了運(yùn)營(yíng)成本。
    的頭像 發(fā)表于 01-22 14:56 ?479次閱讀
    分布式IO模塊與<b class='flag-5'>S7-1200</b> PLC:打造高效分揀系統(tǒng)的新引擎

    RS232串口連接方式及注意事項(xiàng)

    數(shù)據(jù)交換。 RS-232串口簡(jiǎn)介 RS-232標(biāo)準(zhǔn)最初由電子工業(yè)聯(lián)盟(EIA)在1960年制定,用于定義串行通信的電氣特性、信號(hào)定時(shí)和數(shù)據(jù)格式。RS-232串口使用25針的D型連接器(DB-25),但后來(lái)更常用的是9針的D型連接
    的頭像 發(fā)表于 12-10 16:23 ?4710次閱讀

    如何選擇適合的西門(mén)子S7-1200系列PLC型號(hào)?

    西門(mén)子S7-1200系列PLC作為中小型自動(dòng)化控制器,在研發(fā)過(guò)程中充分考慮了系統(tǒng)、控制器、人機(jī)界面和軟件的無(wú)縫整合和高效協(xié)調(diào),是工業(yè)自動(dòng)化領(lǐng)域中的重要組成部分。正確選擇適合的S7-1200系列PLC
    的頭像 發(fā)表于 12-09 18:24 ?3448次閱讀
    如何選擇適合的西門(mén)子<b class='flag-5'>S7-1200</b>系列PLC型號(hào)?

    RS232串口通信協(xié)議詳解

    在計(jì)算機(jī)硬件和通信領(lǐng)域,RS-232串口通信協(xié)議是一個(gè)歷史悠久且廣泛使用的標(biāo)準(zhǔn)。它允許計(jì)算機(jī)通過(guò)串行接口與各種外部設(shè)備進(jìn)行通信,如調(diào)制解調(diào)器、鼠標(biāo)、打印機(jī)等。 RS-232的歷史和定義
    的頭像 發(fā)表于 11-21 09:24 ?3146次閱讀

    快速實(shí)現(xiàn)C2000串口程序升級(jí)

    電子發(fā)燒友網(wǎng)站提供《快速實(shí)現(xiàn)C2000串口程序升級(jí).pdf》資料免費(fèi)下載
    發(fā)表于 08-29 10:50 ?2次下載
    快速實(shí)現(xiàn)C2000<b class='flag-5'>串口</b>程序升級(jí)