chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

西門子S7-1200通信指令概述

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-02-03 14:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

指令概述

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

eb82eeec-a38c-11ed-bfe3-dac502259ad0.png

圖1 指令列表

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

指令集 適用范圍
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中的指令,這些是用于在線修改串口模塊硬件組態(tài)的指令,例如在線修改波特率,在線修改接收條件。一般不需要使用,具體使用可以參見TIA PORTAL幫助或者S7-1200系統(tǒng)手冊。

eb9fcd0a-a38c-11ed-bfe3-dac502259ad0.png

圖2 組態(tài)指令

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

ebb316e4-a38c-11ed-bfe3-dac502259ad0.png

圖3 流控指令

對于如圖4中的指令,這些是用于實現一些擴展功能的指令,例如與第三方設備非標準MODBUS通信,伙伴不需要CRC校驗,可以使用該指令禁用MODBUS CRC。

一般不需要使用,具體使用可以參見TIA PORTAL幫助或者S7-1200系統(tǒng)手冊。

ebc5cbe0-a38c-11ed-bfe3-dac502259ad0.png

圖4 擴展功能

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

ebd60960-a38c-11ed-bfe3-dac502259ad0.png

圖5 清除緩沖區(qū)

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

ebe51b3a-a38c-11ed-bfe3-dac502259ad0.png

圖6 發(fā)送接收

ebf94c40-a38c-11ed-bfe3-dac502259ad0.png

圖7 發(fā)送指令

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

ec06212c-a38c-11ed-bfe3-dac502259ad0.png

圖8 接收指令

Receive_P2P RCV_PTP
EN 為True時,如果通信模塊接收緩沖區(qū)有數據,則將其傳送至BUFFER 使能,建議常接通
EN_R - 為True時,如果通信模塊接收緩沖區(qū)有數據,則將其傳送至BUFFER
PORT 串口硬件模塊標識符,可以在PLC變量表中找到,如圖9所示
BUFFER 接收區(qū),一般使用P#指針形式,String類型或者WString類型,字符數組等,如果使用String類型或者WString類型,則即使伙伴方發(fā)送的是字符數組,指令也會為字符數組添加最大長度和實際長度成為字符串。
NDR 將通信模塊接收緩沖區(qū)的數據接收至BUFFER完成,將有一個掃描周期置位 如果EN_R為True時,則將通信模塊接收緩沖區(qū)的數據接收至BUFFER完成,將有一個掃描周期置位
如果EN_R為False,則通信模塊接收緩沖區(qū)有數據時NDR將始終為True
ERROR 指令錯誤,將有一個掃描周期置位
STATUS 通常顯示狀態(tài)代碼,錯誤時會在ERROR為1的周期顯示錯誤信息(16#8xxx)
LENGTH 在接收完成時,將有一個掃描周期顯示接收到的字節(jié)數

如果通信模塊接收緩沖區(qū)包含有n次接收到的數據,則需要Receive_P2P EN/RCV_PTP EN_R n個掃描周期為True才能接收至BUFFER完成。

一般建議Receive_P2P EN/RCV_PTP EN_R常通或者接通一段時間而不是使用沿觸發(fā),這樣通信模塊接收緩沖區(qū)一旦接收到新數據,就可以立即接收至BUFFER。

如果可能,可以把接收指令放在循環(huán)OB內盡可能快的調用。

ec32b55c-a38c-11ed-bfe3-dac502259ad0.png

圖9 系統(tǒng)常量

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

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

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

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

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

ec4ab620-a38c-11ed-bfe3-dac502259ad0.png

圖10 點到點發(fā)送相關指令

ec6f2af0-a38c-11ed-bfe3-dac502259ad0.png

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

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

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

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

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

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

ec90e5d2-a38c-11ed-bfe3-dac502259ad0.png

圖12 點到點接收相關指令

eca8b77a-a38c-11ed-bfe3-dac502259ad0.png

圖13 PtP Communication 接收相關指令

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

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

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

輪詢編程

通信任務:

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

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

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

注:例子中1號站先發(fā)送,2號站先接收,實際取決于需要,對于PLC來說,先發(fā)送還是先接收都是可以的。

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

eccff704-a38c-11ed-bfe3-dac502259ad0.png

圖14 設置系統(tǒng)存儲器

①進入CPU的設備視圖

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

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

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

圖15為1號站輪詢:

eceaba94-a38c-11ed-bfe3-dac502259ad0.png

圖15 1號站輪詢

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

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

③觸發(fā)接收

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

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

圖16為2號站輪詢:

ed0dc43a-a38c-11ed-bfe3-dac502259ad0.png

圖16 2號站輪詢

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

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

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

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

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

通信結果

ed2b4258-a38c-11ed-bfe3-dac502259ad0.png

圖17 通信結果

常見問題

如何處理對于字符串、字符數組等的發(fā)送接收?

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

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

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

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

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

ed56a1aa-a38c-11ed-bfe3-dac502259ad0.png

圖18 修改2號站的發(fā)送接收區(qū)的String類型改為Char數組

ed773c1c-a38c-11ed-bfe3-dac502259ad0.png

圖19 收發(fā)結果

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






審核編輯:劉清

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

    關注

    5039

    文章

    14288

    瀏覽量

    482016
  • 串口通信
    +關注

    關注

    34

    文章

    1653

    瀏覽量

    57458
  • S7-1200
    +關注

    關注

    11

    文章

    333

    瀏覽量

    19118

原文標題:西門子PLC串口通信編程

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    西門子S7-200到S7-1200的軟件轉換工具

    電子發(fā)燒友網站提供《西門子S7-200到S7-1200的軟件轉換工具.zip》資料免費下載
    發(fā)表于 05-08 10:33 ?27次下載

    西門子S7-1200S7-1500 的編程指南pdf下載

    西門子S7-1200S7-1500 的編程指南
    發(fā)表于 03-27 15:15 ?310次下載

    如何使用博途平臺上完成西門子S7-1500與S7-1200以太網通信?

    一步步教你使用博途平臺,完成西門子最風行的兩款PLC——S7-1500(1515 CPU)與S7-1200(1214 CPU)之間通信,有兩種方法:
    的頭像 發(fā)表于 07-09 10:00 ?5.7w次閱讀
    如何使用博途平臺上完成<b class='flag-5'>西門子</b>的<b class='flag-5'>S7</b>-1500與<b class='flag-5'>S7-1200</b>以太網<b class='flag-5'>通信</b>?

    西門子S7-1200 PLC的在線模擬方法免費下載

    本文檔的主要內容詳細介紹的是西門子S7-1200 PLC的在線模擬方法免費下載。
    發(fā)表于 12-17 08:00 ?14次下載

    西門子S7-1200高速計數功能簡介

    西門子S7-1200高速計數功能簡介說明。
    發(fā)表于 04-23 09:35 ?15次下載

    西門子S7-1200接入MQTT私有云平臺

    西門子S7-1200接入MQTT私有云平臺,PLC網關數據采集BL110
    發(fā)表于 11-11 16:21 ?4938次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>S7-1200</b>接入MQTT私有云平臺

    西門子S7-1200S7-1500編程風格指南

    西門子S7-1200S7-1500編程風格指南分享
    發(fā)表于 08-17 17:30 ?23次下載

    如何通過網關對西門子S7-1200 PLC遠程監(jiān)控?

    如何通過網關對西門子S7-1200 PLC遠程監(jiān)控?
    的頭像 發(fā)表于 11-01 09:02 ?6974次閱讀
    如何通過網關對<b class='flag-5'>西門子</b><b class='flag-5'>S7-1200</b> PLC遠程監(jiān)控?

    西門子S7-1200的TCP通信配置過程及數據交換方式

    西門子S7-1200集成以太網接口,通過該接口可以與其它設備進行以太網通信。S7-1200的以太網通信主要有
    的頭像 發(fā)表于 11-16 10:54 ?1.9w次閱讀

    西門子S7-1200與組態(tài)軟件之間無線MODBUS通信實例

    本方案是組態(tài)軟件與西門子 S7-1200進行無線 MODBUS 通信的實現方法。此方案可以作為西門子 S7-1200與組態(tài)軟件的無線 MOD
    的頭像 發(fā)表于 01-11 09:27 ?3521次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>S7-1200</b>與組態(tài)軟件之間無線MODBUS<b class='flag-5'>通信</b>實例

    西門子PLC S7-1200在線下載功能分享

    西門子PLC S7-200系列的升級版,西門子PLC S7-1200具有很多集成在CPU上的功能,與此同時,它的組態(tài)軟件STEP7 V13具
    的頭像 發(fā)表于 06-25 16:25 ?3695次閱讀

    如何選擇合適的西門子S7-1200 PLC

    為您的項目選擇合適的西門子 S7-1200 PLC 可能具有挑戰(zhàn)性,但有了正確的指南,這一切就會變得很容易。
    發(fā)表于 07-26 09:50 ?2415次閱讀

    PLC西門子S7-200smart和S7-1200的區(qū)別?

    PLC西門子S7-200smart和S7-1200的區(qū)別? 西門子S7-200 smart和S7-120
    的頭像 發(fā)表于 11-17 11:41 ?1.5w次閱讀

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

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

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

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