資源描述:
《最經(jīng)典實用的自由口通訊資料與案例》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、1/5發(fā)送和接收(RS485/RS232為自由端口)可使用發(fā)送(XMT)和接收(RCV)指令,通過CPU串行端口在S7-200SMARTCPU和其它設備之間進行通信。每個S7-200SMARTCPU都提供集成的RS485端口(端口0)。標準CPU額外支持可選CM01信號板(SB)RS232/RS485端口(端口1)。必須在用戶程序中執(zhí)行通信協(xié)議。說明CPU型號CPUCR20s、CPUCR30s、CPUCR40s和CPUCR60s不支持使用信號板。LAD/FBDSTL說明XMTTBL,PORT發(fā)送指令(XMT)用于在自由端口模式下通過通信端口發(fā)送數(shù)據(jù)。RCVTBL,PORT接收指令(RCV
2、)可啟動或終止接收消息功能。必須為要操作的接收功能框指定開始和結束條件。通過指定端口(PORT)接收的消息存儲在數(shù)據(jù)緩沖區(qū)(TBL)中。數(shù)據(jù)緩沖區(qū)中的第一個條目指定接收的字節(jié)數(shù)。ENO=0時的非致命錯誤受影響的SM位?0006H間接地址?SM86.6端口0終止接收消息?0009H(在端口0上同時發(fā)送/接收)?SM186.6端口1終止接收消息?000BH(在端口1上同時發(fā)送/接收)?0090H端口號無效?接收參數(shù)錯誤置位SM86.6或SM186.6?CPU未處于自由端口模式輸入/輸出數(shù)據(jù)類型操作數(shù)TBLBYTEIB、QB、VB、MB、SMB、SB、*VD、*LD、*ACPORTBYTE常數(shù)
3、:0或1注:兩個可用端口如下:?集成RS485端口(端口0),?CM01信號板(SB)RS232/RS485端口(端口1)使用自由端口模式控制串行通信端口可以選擇自由端口模式以通過用戶程序控制CPU的串行通信端口。選擇自由端口模式后,程序通過使用接收中斷、發(fā)送中斷、發(fā)送指令和接收指令來控制通信端口的操作,并在自由端口模式下完全控制通信協(xié)議。使用SMB30和SMB130來選擇波特率和奇偶校驗。CPU向兩個物理端口分配兩個特殊存儲器字節(jié):?向集成RS485端口(端口0)分配SMB30?向CM01RS232/RS485信號板(SB)端口(端口1)分配SMB130CPU處于STOP模式時,會禁用
4、自由端口模式,并會重新建立正常通信(例如,HMI設備訪問)。在最簡單的情況下,可以只使用發(fā)送(XMT)指令向打印機或顯示器發(fā)送消息。其它示例包括與條形碼閱讀器、秤和焊機的連接。在各種情況下,都必須編寫程序,以支持在自由端口模式下與CPU進行通信的設備所使用的協(xié)議。僅當CPU處于RUN模式時,才可使用自由端口通信。要啟用自由端口模式,請在SMB30(端口0)或SMB130(端口1)的協(xié)議選擇字段中設置值01。處于自由端口模式時,無法與同一端口上的HMI通信。說明將USB-PPI電纜連接到CPU時,串行CR型號CPU會禁用自由端口模式。類似地,如果將USB-PPI電纜連接到CRsCPU,CP
5、U會禁止切換到自由端口模式。將PPI通信更改為自由端口模式SMB30和SMB130分別組態(tài)通信端口0和1以進行自由端口操作,并提供波特率、奇偶校驗和數(shù)據(jù)位數(shù)的選擇。下圖顯示了自由端口控制字節(jié)。對于所有組態(tài),都生成一個停止位。pp奇偶校驗選擇d每個字符的數(shù)據(jù)位數(shù)00=無奇偶校驗0=每個字符8位01=偶校驗1=每個字符7位10=無奇偶校驗11=奇校驗bbb自由端口波特率mm協(xié)議選擇000=3840000=PPI從站模式2/5001=1920001=自由端口模式010=960010=保留(默認為PPI從站模式)011=480011=保留(默認為PPI從站模式)100=2400101=12001
6、10=115200111=57600發(fā)送數(shù)據(jù)發(fā)送指令用于對單字符或多字符(最多255個字符)緩沖區(qū)執(zhí)行發(fā)送操作。下圖顯示了發(fā)送緩沖區(qū)的格式。①要發(fā)送的字節(jié)數(shù)②消息字符如果中斷例程連接到發(fā)送完成事件,CPU將在發(fā)送完緩沖區(qū)的最后一個字符后生成中斷(對于端口0為中斷事件9,對于端口1為中斷事件26)。您可以不使用中斷,而通過監(jiān)視SM4.5(端口0)或SM4.6(端口1)用信號表示完成發(fā)送的時間來發(fā)送消息(例如,向打印機發(fā)送消息)。將字符數(shù)設為零,然后執(zhí)行發(fā)送指令,這樣可產(chǎn)生BREAK狀態(tài)。這樣產(chǎn)生的BREAK狀態(tài),在線上會持續(xù)以當前波特率發(fā)送16位數(shù)據(jù)所需要的時間。發(fā)送BREAK的操作與發(fā)送
7、任何其它消息的操作是相同的。BREAK發(fā)送完成時,會生成發(fā)送中斷,并且SM4.5或SM4.6會指示發(fā)送操作的當前狀態(tài)。接收數(shù)據(jù)接收指令用于對單字符或多字符(最多255個字符)緩沖區(qū)執(zhí)行接收操作。下圖顯示了接收緩沖區(qū)的格式。①接收到的字節(jié)數(shù)(字節(jié)字段)②起始字符③消息④結束字符⑤消息字符如果中斷例程連接到接收消息完成事件,CPU會在接收完緩沖區(qū)的最后一個字符后生成中斷(對于端口0為中斷事件23,對于端口1為中斷事件24)??梢圆皇褂弥?/p>