国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

ELEOK

標題: 西門子s7-200自由口通訊程序 適合初學者參考 [打印本頁]

作者: 問題多多    時間: 2018-10-30 23:13
標題: 西門子s7-200自由口通訊程序 適合初學者參考
西門子自由口通訊程序(有興趣的可以參考一下)
S7-200可編程控制器與微機通信之設計和實現
介紹了S7-222 通信方式,著重闡述了自由口通信 參數設定、協議規劃和通信程序設計。
  可編程控制器(PLC)作為一種高性能 工業現場控制裝置,已廣泛地用于工業控制 各個領域。目前,工業自動控制對PLC 網絡通信能力要求越來越高, PLC與上位機之間、PLC與PLC之間都要能夠進行數據共享和控制。
  飛剪控制系統要求 遠離PLC 控制室里,實時監控電機、供紙、刀輥等設備。上位機為普通PC機,下位機為 SIEMENS S7-222 PLC。 實際開發中,采用自由口通信模式,自定義 PC與 PLC 通信協議,用Step7編寫PLC端 通信程序,而  PC端用VC6.0實現串行通信的控制和監控界面的顯示。
2.通信方式及原理
  S7-200系列PLC通信方式有三種:一種是點對點(PPI)方式,用于與西門子公司 PLC編程器或其它產品通信,其通信協議是不公開 。另一種為DP方式,這種方式使 PLC可通過Profibus DP通信接口接入現場總線網絡, 擴大PLC 使用范圍。最后一種方式是自由口(FreePort)通信方式,由用戶定義通信協議,實現PLC與外設 通信。本系統中采用自由口通信方式。它是S7-200系列PLC一個很有特色 功能。這種方式不需要增加投資,具有較好 靈活性,適合小規模控制系統。自由口通信 物理接口上要求雙方都使用RS485接口,波特率最高為38400bps。雖然PC機 標準串口為RS232,但西門子公司提供 PC/PPI電纜帶有RS232 /RS485電平轉換器,因此在不增加任何硬件 情況下,可以很方便地將PLC和PC機互聯。
  2.1自由口模式的初始化
  PLC 自由口模式通信編程首先是對串口初始化。對S7-200PLC 初始化是通過對特殊存儲字節SMB30(端口0)寫入通信控制字,來設置通信的波特率、奇偶校驗、停止位和數據位數。顯然,這些設定必須與上位機設定值相一致。另外還可選擇通信模式和主從站模式,各具體存儲位內容可參考SIMATIC S7-200系統手冊。
  2.2自由口模式下收發數據
  初始化自由端口通信模式后,就可以進行數據的收發。
  (1) 發送數據指令 XMT
  格式:XMT Table,Port。可以用 XMT指令發送數據,XMT指令激活發送緩沖區(從Table開始 變量存儲區)中的數據。數據緩沖區 第一個數據指明了要發送 字節數,Port指明了用于發送 端口,緩沖區最多可以有255個字符。在發完緩沖區 最后一個字符時,會產生一個中斷 (對端口 0為中斷事件9)。本例 XMT緩沖區 格式如表1。其中,狀態字節表示PLC是否正確接收了上位機所傳數據;上傳數據為PLC上傳給PC 數據,需將9字節 16進制數編碼為18字節 ASIIC碼,所以字節數為18;BCC為上傳數據 異或和,同樣將16進制數編碼為ASIIC碼;結束字符的值為26。
用 RCV指令接收最多為255個字符的數據,這些字符存儲 緩沖區中。在接收到結束字符時,會產生一個中斷(對端口 0為中斷事件23)。本例的RCV緩沖區 格式如表2。其中,命令類型表示上位機讓PLC 執行什么操作,如讀或寫;目標站號是分配給PLC 一個代號;起始地址是PLC要進行讀寫的存儲區的起始地址;讀寫字節數是PLC接到命令后,對存儲區進行讀寫的字節數,本例中最多寫入16字節、讀出9字節;寫入數據是上位機要寫入PLC的數據, 讀命令不起作用;BCC是從命令類型開始到寫入數據為止的43字節數據 異或和。從目標站號到BCC這幾項內容,都是把16進制數編碼為ASIIC碼來表示的。
3.自由口通信程序設計
  通信程序 設計需遵循一定的規則,如中斷通信處理程序要短小精悍、要避免XMT與RCV指令同時在一個端口執行等。整個PLC通信程序包括主程序、通信初始化子程序、校驗子程序、讀寫數據子程序和發送完成、接收完成中斷服務程序。
  3.1主程序
  通信主程序是PLC實現接收、發送功能 主框架。其主要流程為查詢接收是否完成,校驗,再根據類型執行讀、寫等操作。它的用是控制程序的流程,校驗、讀寫等具體工作由相應的程序完成。流程如圖1。
  3.2通信初始化程序
  通信初始化子程序設置自由口通信的關參數,對接收信息控制寄存器SMB87寫入控制字,定義起始字符、結束字符和接收超時。設好自由口模式的些參數后,還要連接中斷事件和中斷服務程序,并打開中斷。最后,把接收、發送緩沖區寫入初值即可。
s7-200自由口通信示例程序 自由口通訊.zip (4.99 KB, 售價: 1 E幣)


作者: tanran    時間: 2020-8-4 02:14
謝謝樓主 很不錯的程序,已經下載學習
作者: buickfc    時間: 2020-8-7 14:53
學習學習~~~~~         
作者: 鳳舞九天    時間: 2021-6-19 21:09
請問主站讀取從站兩條數據溫度和壓力,從站返回兩條數據如何分別存放,假如接收一條容易明白,兩條向上就不知道如何接收存放了,存放地址是否能用同一個,那樣會不會后面覆蓋前面的,我是初學者請勿見笑,求教 謝謝




歡迎光臨 ELEOK (http://m.afoofa.cn/) Powered by Discuz! X5.0