在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

S7-1200串口通信編程

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者:機器人及PLC自動化 ? 2022-07-21 10:48 ? 次閱讀

串口通信編程

指令概述

S7-1200有兩套點對點通信指令,如圖1所示。

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

圖1 指令列表

上述兩套指令集區別如下表:

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

建議使用PtP Communication指令集的指令,因為指令和S7-1500兼容,并且指令版本一直在更新,點到點指令集不再更新,建議只用于老項目升級。

指令說明

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

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

圖2 組態指令

對于如圖3中的指令,這些是用于硬流控操作的指令,通過信號設置激活相關的接收發送。除非使用硬流控,否則不需要使用,具體使用可以參見TIA PORTAL幫助或者S7-1200系統手冊。

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

圖3 流控指令

對于如圖4中的指令,這些是用于實現一些擴展功能的指令,例如與第三方設備非標準MODBUS通信,伙伴不需要CRC校驗,可以使用該指令禁用MODBUS CRC。一般不需要使用,具體使用可以參見TIA PORTAL幫助或者S7-1200系統手冊。

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

圖4 擴展功能

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

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

圖5 清除緩沖區

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

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

圖6 發送接收

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

圖7 發送指令

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

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

圖8 接收指令

Receive_P2P RCV_PTP
EN 為True時,如果通信模塊接收緩沖區有數據,則將其傳送至BUFFER 使能,建議常接通
EN_R - 為True時,如果通信模塊接收緩沖區有數據,則將其傳送至BUFFER
PORT 串口硬件模塊標識符,可以在PLC變量表中找到,如圖9所示
BUFFER 接收區,一般使用P#指針形式,String類型或者WString類型,字符數組等,如果使用String類型或者WString類型,則即使伙伴方發送的是字符數組,指令也會為字符數組添加最大長度和實際長度成為字符串。
NDR 將通信模塊接收緩沖區的數據接收至BUFFER完成,將有一個掃描周期置位

如果EN_R為True時,則將通信模塊接收緩沖區的數據接收至BUFFER完成,將有一個掃描周期置位
如果EN_R為False,則通信模塊接收緩沖區有數據時NDR將始終為True

ERROR 指令錯誤,將有一個掃描周期置位
STATUS 通常顯示狀態代碼,錯誤時會在ERROR為1的周期顯示錯誤信息(16#8xxx)
LENGTH 在接收完成時,將有一個掃描周期顯示接收到的字節數

1929449e-0834-11ed-ba43-dac502259ad0.jpg如果通信模塊接收緩沖區包含有n次接收到的數據,則需要Receive_P2P EN/RCV_PTP EN_R n個掃描周期為True才能接收至BUFFER完成。

一般建議Receive_P2P EN/RCV_PTP EN_R常通或者接通一段時間而不是使用沿觸發,這樣通信模塊接收緩沖區一旦接收到新數據,就可以立即接收至BUFFER。如果可能,可以把接收指令放在循環OB內盡可能快的調用。

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

圖9 系統常量

①在CPU中選擇PLC變量表>默認變量表

②選擇系統常量

③找到相關串口模塊,建議直接將模塊名稱復制到PORT處

發送指令、發送完成位、發送錯誤位、發送錯誤代碼

下面分為點對點指令與PtP Communication 指令分別介紹

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

圖10 點到點發送相關指令

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

圖10 PtP Communication 發送相關指令

程序段1:觸發發送

程序段2:發送完成位觸發一個全局變量自加一,每完成一次該變量加一個數,可以通過這種方法檢測是否發送完成

程序段3:發送錯誤位觸發一個MOVE指令,當發送錯誤到來時,通過這種方法將STATUS的變量移動到一個全Word類型全局變量,發送錯誤代碼將保存到該變量中

接收指令、接收完成位、接收錯誤位、接收錯誤代碼、接收長度

下面分為點對點指令與PtP Communication 指令分別介紹

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

圖12 點到點接收相關指令

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

圖13 PtP Communication 接收相關指令

程序段4:觸發接收

程序段5:接收完成位觸發一個全局變量自加一,每完成一次該變量加一個數,可以通過這種方法檢測是否接收完成,同時將長度變量通過一個MOVE指令移動到一個UInt類型全局變量,接收長度將保存到該變量中

程序段6:接收錯誤位觸發一個MOVE指令,接收送錯誤到來時,通過這種方法將STATUS的變量移動到一個Word類型全局變量,接收錯誤代碼將保存到該變量中

輪詢編程

通信任務:

1號站S7-1200使用CB1241,利用點對點指令發送接收。

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

1號站發送字符串'西門子',2號站發送字符串'博大精深'。

1929449e-0834-11ed-ba43-dac502259ad0.jpg注:例子中1號站先發送,2號站先接收,實際取決于需要,對于PLC來說,先發送還是先接收都是可以的。

例子中使用系統存儲器FirstScan,激活方式如圖14所示。

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

圖14 設置系統存儲器

①進入CPU的設備視圖

②在屬性>常規下選中系統和時鐘存儲器

③激活啟用系統存儲器字節,默認MB1

④即為FirstScan變量,默認M1.0

圖15為1號站輪詢:

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

圖15 1號站輪詢

①使用系統存儲器“FirstScan”激活第一次的發送

②發送DONE位置位接收請求,復位發送請求

③觸發接收

④接收NDR位置位發送請求,復位接收請求

⑤觸發下一次的發送

圖16為2號站輪詢:

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

圖16 2號站輪詢

①使用系統存儲器“FirstScan”激活第一次的接收

②接收NDR位的上升沿置位接收請求,復位發送請求

③觸發發送

④發送DONE位置位接收請求,復位發送請求

⑤觸發下一次的接收

通信結果

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

圖17 通信結果

常見問題

1baf3944-0834-11ed-ba43-dac502259ad0.jpg如何處理對于字符串、字符數組等的發送接收?

考慮到PLC通常與第三方進行自由口通信,而通信內容通常是字符串,但是西門子的SIMATIC String或者WString是包含最大長度與實際長度的,而第三方的字符串對于西門子來說是Char數組或者WChar數組。

基于此點對點及PtP Communication 指令集均對字符串、字符數組的發送接收進行了優化,即:

第三方伙伴發送字符數組,PLC的接收指令BUFFER類型為字符數組,則接收成字符數組,BUFFER類型為字符串,則接收成字符串,接收指令自動將字符串的最大長度和實際長度補齊。

第三方伙伴接收字符數組,PLC的發送指令BUFFER類型為字符數組,則發送字符數組,BUFFER類型為字符串,同樣發送字符數組,發送指令自動將字符串的最大長度和實際長度去掉。

簡單的說PLC會按照字符數組的形式收發,發送或者接收BUFFER如果是字符串,則會進行相應的轉換。以上面輪詢為例,參見圖18圖19。

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

圖18 修改2號站的發送接收區的String類型改為Char數組

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

圖19 收發結果

可以得知,1號站發送字符串‘123’,2號站接收到字符數組,每個字符分別是'1'、'2'、'3'。2號站發送字符數組,每個字符分別是'a'、'b'、'c',1號站接收到字符串為'abc'。


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3637

    瀏覽量

    93989
  • 串口通信
    +關注

    關注

    34

    文章

    1627

    瀏覽量

    55733
  • S7-1200
    +關注

    關注

    11

    文章

    331

    瀏覽量

    18074

原文標題:串口通信編程

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

    在現代化物流中心,快速、高效、準確的包裹分揀是衡量整個系統性能的關鍵指標。為了實現這一目標,國產IO模塊與西門子S7-1200 PLC的結合應用,正成為越來越多企業的首選方案。這一組合不僅優化了數據采集和處理流程,還顯著提升了分揀效率,降低了運營成本。
    的頭像 發表于 01-22 14:56 ?95次閱讀
    分布式IO模塊與<b class='flag-5'>S7-1200</b> PLC:打造高效分揀系統的新引擎

    RS232串口連接方式及注意事項

    數據交換。 RS-232串口簡介 RS-232標準最初由電子工業聯盟(EIA)在1960年制定,用于定義串行通信的電氣特性、信號定時和數據格式。RS-232串口使用25針的D型連接器(DB-25),但后來更常用的是9針的D型連接
    的頭像 發表于 12-10 16:23 ?1678次閱讀

    如何選擇適合的西門子S7-1200系列PLC型號?

    西門子S7-1200系列PLC作為中小型自動化控制器,在研發過程中充分考慮了系統、控制器、人機界面和軟件的無縫整合和高效協調,是工業自動化領域中的重要組成部分。正確選擇適合的S7-1200系列PLC
    的頭像 發表于 12-09 18:24 ?875次閱讀
    如何選擇適合的西門子<b class='flag-5'>S7-1200</b>系列PLC型號?

    RS232串口通信協議詳解

    在計算機硬件和通信領域,RS-232串口通信協議是一個歷史悠久且廣泛使用的標準。它允許計算機通過串行接口與各種外部設備進行通信,如調制解調器、鼠標、打印機等。 RS-232的歷史和定義
    的頭像 發表于 11-21 09:24 ?1349次閱讀

    快速實現C2000串口程序升級

    電子發燒友網站提供《快速實現C2000串口程序升級.pdf》資料免費下載
    發表于 08-29 10:50 ?1次下載
    快速實現C2000<b class='flag-5'>串口</b>程序升級

    請問西門子S7-1200如何實現Modbus TCP通訊?

    西門子S7-1200如何實現Modbus TCP通訊?
    發表于 07-25 06:24

    西門子S7-1200 PLC的指令介紹

    西門子S7-1200 PLC,作為西門子自動化控制產品中的一款緊湊型控制器,憑借其強大的功能和易用性,在工業控制領域得到了廣泛的應用。S7-1200 PLC不僅具備標準的PLC功能,還融入
    的頭像 發表于 06-18 14:52 ?3122次閱讀

    西門子S7-1200 PLC如何通過模擬量控制變頻器

    在現代工業自動化領域中,變頻器因其能實現對交流電動機的平滑調速而得到了廣泛應用。西門子S7-1200 PLC(可編程邏輯控制器)作為工業控制領域的重要設備,其通過模擬量控制變頻器的方式,不僅提高了
    的頭像 發表于 06-18 09:26 ?2865次閱讀

    485串口可以用can協議嗎

    一、引言 隨著工業自動化和智能控制技術的發展,通信協議在設備間數據傳輸和控制中扮演著越來越重要的角色。485串口和CAN協議是兩種常見的通信協議,它們在不同的應用場景中發揮著重要作用。本文將對這兩種
    的頭像 發表于 06-16 09:21 ?1456次閱讀

    簡述S7-1200 PLC的硬件組成

    S7-1200 PLC(Programmable Logic Controller,可編程邏輯控制器)是西門子公司推出的一款小型、模塊化的可編程控制器,廣泛應用于工業自動化、過程控制、機械控制等領域
    的頭像 發表于 06-14 10:04 ?5822次閱讀

    西門子S7-1200 PLC的優缺點分析

    西門子S7-1200 PLC作為自動化控制系統中的核心組件,自推出以來就受到了廣泛關注。其緊湊的模塊化設計、強大的功能以及靈活的擴展性,使得它在工業自動化領域占據了重要的地位。然而,任何產品都不是
    的頭像 發表于 06-13 11:33 ?3728次閱讀

    西門子S7-1200 PLC的基本功能

    西門子S7-1200 PLC(Programmable Logic Controller)是一款緊湊型、模塊化的可編程邏輯控制器,專為滿足各種自動化應用需求而設計。其強大的功能、靈活的配置以及卓越
    的頭像 發表于 06-13 11:29 ?2514次閱讀

    三菱串口 fx0N編程如何使用?

    : 9600/7/ 偶/ 1 。 串口號: 默認為****1 。 通訊方式: 一主一從 硬件接線 : (1)采用標準三菱SC-09的RS232編程電纜與PLC
    的頭像 發表于 04-16 11:50 ?768次閱讀
    三菱<b class='flag-5'>串口</b> fx0N<b class='flag-5'>編程</b><b class='flag-5'>口</b>如何使用?

    S7-1200 CPU 存儲卡的應用分析

    S7-1200 CPU 使用的存儲卡為 SD 卡,存儲卡中可以存儲用戶項目文件,有如下3種功能: 作為 CPU 的裝載存儲區,用戶項目文件可以僅存儲在卡中,CPU 中沒有項目文件,離開存儲卡無法運行。
    發表于 03-15 11:11 ?1176次閱讀
    <b class='flag-5'>S7-1200</b> CPU 存儲卡的應用分析

    如何使用S7-1200 CPU的存儲卡呢?

    S7-1200 CPU 使用的存儲卡為 SD 卡,存儲卡中可以存儲用戶項目文件,有如下3種功能
    的頭像 發表于 02-26 09:53 ?2117次閱讀
    如何使用<b class='flag-5'>S7-1200</b> CPU的存儲卡呢?
    主站蜘蛛池模板: 国产伦子一区二区三区四区 | 黄视频网站在线看 | av在线色| 91国内在线观看 | 啪啪调教所29下拉式免费阅读 | 亚洲国产成人精品女人久久久 | bt天堂资源在线官网bt | 免费在线黄色网址 | 四虎影院在线观看免费 | 在线观看视频高清视频 | 精品新一区二区三区四区 | 九九福利 | 国产黄色在线看 | 午夜美女视频在线观看高清 | 插插插操操操 | 在线免费成人 | 六月丁香六月婷婷 | 欧美freesex| 久久午夜网 | 康熙古代高h细节肉爽文全文 | 特级黄aaaaaaaaa毛片 | 亚洲一区二区视频 | 涩涩爱影院 | 欧美成人看片一区二区三区 | 在线看片成人免费视频 | 日本黄色生活片 | 深夜视频免费在线观看 | 天天做天天干 | 天天视频观看 | 一区二区影视 | 91精品国产免费久久久久久青草 | 手机在线完整视频免费观看 | 老熟女一级毛片 | 美女张开腿让男人桶爽 | 狠狠色噜噜狠狠狠狠91 | 欧美一级特黄乱妇高清视频 | 制服丝袜在线一区 | 中文字幕三级久久久久久 | 97在线精品 | 青草国产在线视频 | 四虎影音在线观看 |