西門子PLC模塊6ES7516-3TN00-0AB0詳細(xì)說明
1.概述 1.1S7-1200的PROFINET通信口 S7-1200CPU本體上集成了一個PROFINET通信口,支持以太網(wǎng)和基于TCP/IP的通信標(biāo)準(zhǔn)。使用這個通信口可以實現(xiàn)S7-1200CPU與編程設(shè)備的通信,與HMI觸摸屏的通信,以及與其它CPU之間的通信。這個PROFINET物理接口是支持10/100Mb/s的RJ45口,支持電纜交叉自適應(yīng),因此一個標(biāo)準(zhǔn)的或是交叉的以太網(wǎng)線都可以用于這個接口。 1.2S7-1200支持的協(xié)議和最大的連接資源 S7-1200CPU的PROFINET通信口支持以下通信協(xié)議及服務(wù) ?TCP ?ISOonTCP(RCF1006) ?S7通信(服務(wù)器端) 通信口所支持的最大通信連接數(shù) S7-1200CPUPROFINET通信口所支持的最大通信連接數(shù)如下: ?3個連接用于HMI(觸摸屏)與CPU的通信 ?1個連接用于編程設(shè)備(PG)與CPU的通信 ?8個連接用于OpenIE(TCP,ISOonTCP)的編程通信,使用T-block指令來實現(xiàn) ?3個連接用于S7通信的服務(wù)器端連接,可以實現(xiàn)與S7-200,S7-300以及S7-400的以太網(wǎng)S7通信 S7-1200CPU可以同時支持以上15個通信連接,這些連接數(shù)是固定不變的,不能自定義。 TCP(TransportConnectionProtocol) TCP是由RFC793描述的標(biāo)準(zhǔn)協(xié)議,可以在通信對象間建立穩(wěn)定、安全的服務(wù)連接。如果數(shù)據(jù)用TCP協(xié)議來傳輸,傳輸?shù)男问绞菙?shù)據(jù)流,沒有傳輸長度及信息幀的起始、結(jié)束信息。在以數(shù)據(jù)流的方式傳輸時接收方不知道一條信息的結(jié)束和下一條信息的開始。因此,發(fā)送方必須確定信息的結(jié)構(gòu)讓接收方能夠識別。在多數(shù)情況下TCP應(yīng)用了IP(Internetprotocol),也就是“TCP/IP協(xié)議",它位于ISO-OSI參考模型的第四層。 協(xié)議的特點: ?與硬件綁定的高效通信協(xié)議 ?適合傳輸中等到大量的數(shù)據(jù)(<=8192bytes) ?為大多數(shù)設(shè)備應(yīng)用提供 –錯誤恢復(fù) –流控制 –可靠性 ?一個基于連接的協(xié)議 ?可以靈活的與支持TCP協(xié)議的第三方設(shè)備通信 ?具有路由兼容性 ?只可使用靜態(tài)數(shù)據(jù)長度 ?有確認(rèn)機制 ?使用端口號進(jìn)行應(yīng)用尋址 ?大多數(shù)應(yīng)用協(xié)議,如TELNET、FTP都使用TCP ?使用SEND/RECEIVE編程接口進(jìn)行數(shù)據(jù)管理需要編程來實現(xiàn) 1.3硬件需求和軟件需求 硬件: ①S7-1200CPU ②S7-300CPU+CP343-1(支持S7Client) ③PC(帶以太網(wǎng)卡) ④TP以太網(wǎng)電纜 軟件: ①STEP7BasicV10.5 ②STEP7V5.4 2.ISOonTCP通信 S7-1200CPU與S7-300/400之間通過ISOonTCP通信,需要在雙方都建立連接,連接對象選擇“Unspecified"。 所完成的通信任務(wù)為: ①S7-1200將DB3里的100個字節(jié)發(fā)送到S7-300的DB2中 ②S7-300將輸入數(shù)據(jù)IB0發(fā)送給S7-1200的輸出數(shù)據(jù)區(qū)QB0。 2.1S7-1200CPU的組態(tài)編程 組態(tài)編程過程與S7-1200CPU之間的通信基本相似(見6.3),這里簡單描述一下步驟: ①使用STEP7BasicV10.5軟件新建一個項目 在STEP7Basic的“PortalView"中選擇“Createnewproject"創(chuàng)建一個新項目 ②添加新設(shè)備 然后進(jìn)入“Projectview",在“Projecttree"下雙擊“Addnewdevice",在對話框中選擇所使用的S7-1200CPU添加到機架上,命名為PLC_1。 ③為PROFINET通信口分配以太網(wǎng)地址 在“DeviceView"中點擊CPU上代表PROFINET通信口的綠色小方塊,在下方會出現(xiàn)PROFINET接口的屬性,在“Ethernetaddresses"下分配IP地址為192.168.0.1,子網(wǎng)掩碼為255.255.255.0。 ④在S7-1200CPU中調(diào)用“TSEND_C"通信指令并配置連接參數(shù)和塊參數(shù) 在主程序中調(diào)用發(fā)送通信指令,進(jìn)入“Projecttree">“PLC_1">“Programblock
西門子PLC模塊6ES7516-3TN00-0AB0詳細(xì)說明
用于 S7-300/C7/ET 200, 3,3V Nflash,8 MByte

??為保證系統(tǒng)穩(wěn)定運行,系統(tǒng)CPU應(yīng)避免長時間滿負(fù)荷運作,應(yīng)用程序CPU占用不宜過高??蛻粜枰谡{(diào)試階段監(jiān)測應(yīng)用程序各個進(jìn)程線程占用情況,對占用過高的進(jìn)程線程進(jìn)行優(yōu)化。因CE自身不帶進(jìn)程線程系統(tǒng)占用查看工具,我們增加了AppHelper助手工具方便客戶使用。
??在之前的技術(shù)文章《CE應(yīng)用程序助手簡介》中簡單介紹過英創(chuàng)AppHelper應(yīng)用程序助手,本文將詳細(xì)介紹AppHelper的使用方法。
??AppHelper查看方法
??客戶在自制底板上只要引出了網(wǎng)絡(luò),USBOTG,DEBUG調(diào)試串口,或板子其它串口任意之一便可以查看AppHelper信息。
??網(wǎng)絡(luò)方式
??通過telnet登錄上板子,運行命令sysinfo,即可獲得AppHelper打印的進(jìn)程線程信息。

??telnet模式打印示例圖
??USBOTG方式
??使用AHC工具(使用方法見本文下一節(jié))配置AppHelper輸出為COM1。連接上板子USBOTG口,板子將以虛擬串口形式被PC識別。使用任意串口工具向該串口輸出任意三個字符(任意波特率),即可獲得AppHelper打印的進(jìn)程線程信息。

??USBOTG,DEBUG及其它串口打印示例圖
??DEBUG調(diào)試串口方式
??使用AHC工具(使用方法見本文下一節(jié))配置AppHelper輸出為DEBUG。連接板子的DEBUG串口,PC端使用任意串口工具,設(shè)置波特率115200,向DEBUG口輸出任意三個字符,即可獲得AppHelper打印的進(jìn)程線程信息。
??串口方式
??將底板上引出,且客戶應(yīng)用程序未使用的串口連接上PC。使用AHC工具(使用方法見本文下一節(jié))配置好串口號及波特率。PC端使用任意串口工具,用設(shè)定的波特率向該串口輸出任意三個字符,即可獲得AppHelper打印的進(jìn)程線程信息。
??AHC工具使用介紹
??AHC工具即AppHelper Config工具,用于設(shè)置AppHelper打印信息的輸出位置。有兩種辦法進(jìn)行設(shè)置。
??控制面板方式
??在板子控制面板中運行AHC工具。

??選擇好輸出信息的串口及波特率(其中COM1為USBOTG),點擊OK鍵保存配置,板子重啟后配置生效。

??telnet方式
??通過telnet登錄上板子,執(zhí)行命令A(yù)HC port [baud]
??參數(shù)port:串口號,值為0-6,0表示DEBUG串口,1表示USBOTG轉(zhuǎn)虛擬串口,2-6分別表示板子的COM2-COM6。
??參數(shù)baud:波特率,可選參數(shù),如果不填表示保持原波特率,支持1200,2400,4800,9600,19200,38400,57600,115200。當(dāng)port為0時,baud固定為115200,當(dāng)port為1時,baud值不生效。

??命令執(zhí)行后,DEBUG口可以看到打印提示信息。

??打印格式說明
??打印結(jié)果為數(shù)行,其中每行的格式均為:類型 ID號 占用情況 名稱
??以下圖一次打印的部分截圖為例:

??類型
??PID表示為process進(jìn)程。TID表示為上面進(jìn)程下的thread線程。
??ID號
??即進(jìn)程ID值或線程ID值。
??占用情況
??顯示格式為 K n% U m% total%
??n值為該進(jìn)程或線程在Kernel系統(tǒng)層的占用
??m值為該進(jìn)程或線程在User用戶層的占用
??total值為總占用,它應(yīng)當(dāng)?shù)扔趎+m的和
??進(jìn)程下各個線程total占用和應(yīng)當(dāng)?shù)扔谶M(jìn)程的total占用
??名稱
??進(jìn)程名即EXE的名稱,線程默認(rèn)沒有名稱,下一節(jié)會介紹如何給線程命名,從而能在AppHelper中顯示出來。
??進(jìn)程及線程監(jiān)視說明
??AppHelper會打印系統(tǒng)下所有的進(jìn)程的CPU占用信息。
??只有在\NandFlash目錄下的exe生成的進(jìn)程會額外打印出它下面所有線程的CPU占用信息。
??默認(rèn)情況下,生成的線程只有ID號,沒有名稱,如果線程較多會不便于查看。我們可以通過簡單代碼給線程命名。
??以光盤里的串口例程SPT_HEX為例:
??添加一個結(jié)構(gòu)體的定義
??typedef struct _THREAD_INDEX