最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

基于Snap7實(shí)現(xiàn)與西門子PLC通信

2020-06-20 15:38 作者:新閣教育  | 我要投稿

如果你對西門子PLC通信或者上位機(jī)開發(fā)稍微有一點(diǎn)研究的話,應(yīng)該對Snap7有所耳聞。Snap7是一個基于以太網(wǎng)與西門子S7系列PLC通信的開源庫,在世界上工控領(lǐng)域應(yīng)用很廣?;蛟S是因?yàn)橘Y料比較少,而且很多都是純英文,在國內(nèi)應(yīng)用并不廣泛。

作為一個技術(shù)開發(fā)人員,所有未知領(lǐng)域的事物都是值得探索的。于是花了一些時間,對Snap7做了一些研究,借此機(jī)會,給大家做一些分享,希望可以給對工作或?qū)W習(xí)中有這塊需要的人,提供一些借鑒。

01、Snap7基礎(chǔ)介紹

  • Snap7作為一個世界級的開源庫,有自己的官網(wǎng):http://snap7.sourceforge.net/

  • 大家如果需要Snap7的源碼,可以去這里下載:https://sourceforge.net/projects/snap7/files/1.4.2/snap7-full-1.4.2.7z/download

  • 大家如果源碼下載太慢或者下載不了,可以關(guān)注公眾號:dotNet工控上位機(jī),發(fā)送關(guān)鍵詞:Snap7源碼

  • Snap7主要用于將PC站點(diǎn)與PLC網(wǎng)路完全連接到一起,所以它具有三個對象組件,分別是客戶端、服務(wù)器和協(xié)作者,這三個對象可以同時應(yīng)用,下面這幅圖描述了這三個對象之間的聯(lián)系:

對于一般開發(fā)人員來說,Server和Partner模式是用不到的,我們主要用的是Client模式,即PLC作為Server,上位機(jī)PC作為Client。

02、Snap7源碼分析

打開下載的源碼項(xiàng)目,直接編譯成功之后是可以直接運(yùn)行的,找一個自己身邊的西門子PLC進(jìn)行通信功能測試,如果手頭沒有PLC,可以通過下面這篇文章來搭建一個西門子PLC的仿真環(huán)境:戳↓

基于S7-PLCSIM Advanced搭建S7通信仿真環(huán)境

大家看到源碼之后,可以發(fā)現(xiàn)提供的snap7.net其實(shí)是對snap7.dll的二次封裝,snap7.dll是一個C/C++寫的類庫,我們憑借經(jīng)驗(yàn)和嗅覺可以找到一些核心的方法。

(1)與PLC建立連接

(2)與PLC斷開連接

(3)讀取存儲區(qū)

(4)寫入存儲區(qū)

(5)讀取多變量

(6)寫入多變量

個人感覺,這個snap7.net的封裝較為簡單,而且頗有老外的風(fēng)格,不太適用于國人使用,因此大家可以直接做一層封裝,下面是我對這個snap7.net做的一些的封裝(由于篇幅有限,僅列舉部分):

(7)PLC連接與斷開連接

(8)批量讀取字節(jié)

(9)批量寫入字節(jié)

通過這些封裝,會將snap7.net里晦澀難懂的方法變成我們自己熟悉的方式,這樣,我們自己做開發(fā)的時候,會更加方便和高效,這里值得注意的是西門子S7協(xié)議通信會有PDU及通信組數(shù)量的限制,對于一般的PLC來說,PDU限制是240個字節(jié),通信組數(shù)量限制是20個,也就意味著一次性只能讀取222個字節(jié),并且最多只能同時讀取20個通信組,對于1500PLC來說,PDU限制可以達(dá)到960個字節(jié),意味著一次性可以讀取942個字節(jié),最多可以同時讀取約78個通信組。

03、通信測試

通信庫編寫完成之后,通過TIA V15 + PLCSIM + NETTOPLCISM搭建了一個S7-1500PLC的仿真環(huán)境,用于通信測試(大家可以采用TIA V15 + PLCSIM Advaced的方式,會更加方便)。

(1)西門子仿真環(huán)境

基于封裝的通信庫開發(fā)了一個簡單的測試平臺,分別于S7-200 Smart PLC及S7-1500進(jìn)行了通信測試,測試結(jié)果如下:

(2)S7-200 Smart PLC通信測試

(3)S7-1500PLC通信測試




Modbus在TCPIP網(wǎng)絡(luò)上的應(yīng)用¥298

這個課程怎么樣?




必須學(xué)習(xí)!



01課程學(xué)習(xí)方法及上位機(jī)總體說明

02Modbus協(xié)議介紹及仿真軟件使用

03Modbus協(xié)議——讀取輸入輸出線圈

04Modbus協(xié)議——讀取保持輸入寄存器

05Modbus協(xié)議——預(yù)置單線圈單寄存器

06Modbus協(xié)議——預(yù)置多線圈多寄存器

07項(xiàng)目開發(fā)——項(xiàng)目框架搭建及連接功能.

08項(xiàng)目開發(fā)——優(yōu)化界面設(shè)計(jì)及寫入日志

09通信庫開發(fā)——讀取輸出線圈

10通信庫開發(fā)——編寫讀取輸入線圈

11項(xiàng)目開發(fā)——輸入輸出線圈的讀取測試

12通信庫開發(fā)——編寫讀取輸入保持寄存器

13項(xiàng)目開發(fā)——各種數(shù)據(jù)類型的讀取

14通信庫開發(fā)——編寫強(qiáng)制單線圈

15通信庫開發(fā)——編寫強(qiáng)制多線圈

16項(xiàng)目開發(fā)——線圈寫入測試

17通信庫開發(fā)——預(yù)置單寄存器

18通信庫開發(fā)——預(yù)置多寄存器

19項(xiàng)目開發(fā)——各種數(shù)據(jù)類型的寫入

掃碼二維碼

進(jìn)入課程學(xué)習(xí)

¥298





基于Snap7實(shí)現(xiàn)與西門子PLC通信的評論 (共 條)

分享到微博請遵守國家法律
遂平县| 台南市| 谢通门县| 将乐县| 泾川县| 旌德县| 景泰县| 龙岩市| 石泉县| 台江县| 武胜县| 洛隆县| 新田县| 南安市| 桂平市| 鹰潭市| 高要市| 宝山区| 泰和县| 延津县| 怀仁县| 积石山| 邳州市| 抚州市| 襄城县| 承德市| 峨眉山市| 共和县| 屏东市| 定州市| 肇庆市| 岐山县| 长岭县| 大方县| 原平市| 乐昌市| 城固县| 淮北市| 彩票| 安庆市| 仪征市|