<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        您現在所在的是:

        西門子SIEMENS

        回帖:48個,閱讀:26059 [上一頁] [1] [2] [3] [4] [5] [下一頁]
        1158
        broadbct
        文章數:64
        年度積分:53
        歷史總積分:1158
        注冊時間:2005/1/20
        發站內信
        發表于:2005/10/20 20:33:00
        #0樓
        概述
        ----本例說明如何以自由協議實現計算機與S7-200的通信,計算機作為主站,可以實現對PLC從站各寄存器的讀/寫操作。
        ----計算機通過COM口發送指令到PLC的PORT0(或PORT1)口,PLC通過RCV接收指令,然后對指令進行譯碼,譯碼后調用相應的讀/寫子程序實現指令要求的操作,并返回指令執行的狀態信息。

        通信協議
        ----在自由口模式下,通信協議是由用戶定義的。用戶可以用梯形圖程序調用接收中斷、發送中斷、發送指令(XMT)、接受指令(RCV)來控制通信操作。在自由口模式下,通信協議完全由梯形圖程序控制。

        指令格式定義

        計算機每次發送一個33字節長的指令來實現一次讀/寫操作,指令格式見表1 說明:
        起始字符
        ----起始字符標志著指令的開始,在本例中被定義為ASCII碼的"g",不同的PLC從站可以定義不同的起始字符以接收真對該PLC的指令。
        指令類型
        ----該字節用來標志指令的類型,在本例中05H代表讀操作,06H代表寫操作。
        目標PLC站地址
        ----目標PLC站地址占用指令的B2、B3兩個字節,以十六進制ASCII碼的格式表示目標PLC的站地址。
        目標寄存器地址
        ----在PLC內部可以用4個字節來表示一個寄存器的地址(但不能表示一個位地址)。前兩個字節表示寄存器類型,后兩個字節表示寄存器號。
        00 00(H):   I寄存器區
        01 00(H):   Q寄存器區
        02 00(H):   M寄存器區
        08 00(H):   V寄存器區

        例如:
        IB000的地址可表示為   00 00 00 00(H)
        VB100的地址可表示為   08 00 00 64(H)

        讀/寫字節數M
        ----當讀命令時,始終讀回從目標寄存器開始的連續8個字節的數據(轉換為十六進制ASCII碼后占用16個字節),可以根據自己的需要取用,M可以任意寫入。
        ----當寫命令時,M表示的是要寫入數據的十六進制ASCII碼所占用的字節數。例如要寫入1個字節的數據,數據在指令中以十六進制ASCII碼表示,它將占用2個字節,此時應向M中寫入"02"。同理,如果要寫入5個字節的數據,M中應寫入"0A"。
        要寫入的數據
        ----要寫入的數據在指令中以十六進制ASCII碼的格式表示,占用指令的B14-B29共16個字節。數據區必須填滿,但只有前M個字節的數據會被寫入目標寄存器。一條指令最多可以寫入8個字節的數據(此時M中應寫入"10",代表十進制的16)
        BCC校驗碼
        ----在傳輸過程中,指令有可能受到任何的干擾而使原來的數據信號發生扭曲,此時的指令當然是錯誤的,為了偵測指令在傳輸過程中發生的錯誤,接收方必須對指令作進一步的確認工作,以防止錯誤的指令被執行,最簡單的方法就是使用校驗碼。BCC校驗碼的方法就是將要傳送的字符串的ASCII碼以字節為單位作異或和,并將此異或和作為指令的一部分傳送出去;同樣地,接收方在接到指令后,以相同的方式對接收到的字符串作異或和,并與傳送方所送過來的值作對比,若其值相等,則代表接收到的指令是正確的,反之則是錯誤的。
        ----在本例中,bcc為指令B1到B29的異或和,BCC為bcc的十六進制ASCII碼。
        ----bcc=B1 xor B2 xor B3 xor B4 xor …… xor B29
        結束字符
        ----結束字符標志著指令的結束,在本例中被定義為ASCII碼的"G",不同的PLC從站可以定義不同的結束字符以接收真對該PLC的指令。
        PLC在接到上位機指令后,將發送一個21字節長反饋信息,格式見表2
        說明:
        起始字符
        ----起始字符標志著反饋信息的開始,在本例中被定義為ASCII碼的"g",不同的PLC從站可以定義不同的起始字符,這樣上位機可以根據信息的起始字符來判斷反饋信息的來源。
        狀態信息
        ----該字節包含指令執行的狀態信息,在本例中
        01H   代表   讀取正確
        02H   代表   寫入正確
        03H   代表   BCC校驗碼錯誤
        04H   代表   指令不合法

        數據區
        ----反饋信息的B3到B18為讀指令所要讀取的數據,以十六進制ASCII碼表示。
        BCC校驗碼
        ----與上位機指令中的BCC校驗碼類似,它是反饋信息B3到B18的異或和。
        結束字符
        ----結束字符標志著反饋信息的結束,在本例中被定義為26H。
        指令中為何要使用ASCII碼
        ----一條指令除包含數據外,還包含必要的控制字(起始字符、結束字符、指令類型等)。如果指令中的數據直接以其原本的形式傳輸,則不可避免的會與指令中的控制字發生混淆。
        ----例如本例中,指令的起始字符為"g",其ASCII碼值為67H,結束字符為"G",其ASCII碼值為47H。假設要寫入的數據中也有47H,并且數據直接以其原本的形式傳輸,則PLC會因為接收到了數據中的47H而停止接收,這樣PLC接收到的指令將是一個不完整的非法指令,很可能造成PLC的誤動作。
        ----為了避免這種情況的發生,可以用文本來傳送二進制數據。通過以16進制ASCII碼的格式描述數據,每個二進制的字節都可以表示成一對ASCII編碼,這對編碼表示這個字節的兩個16進制字符。這種格式可以表示任何的數值,僅僅使用ASCII代碼的30H到39H(表示0到9)和41H到46H(表示A到F)。ASCII碼的其余部分可以用作控制字(起始標志、結束標志、指令類型等)。這樣,數據中的47H以ASCII碼的形式進行傳送就變成了34H 37H 兩個字節,從而避免了PLC因接收到數據中的47H而停止接收的錯誤。

        表1 上位機指令格式
        Byte0 起始字符
        Byte1 指令類型(讀/寫)
        Byte2 目標PLC站地址(十六進制ASCII碼)
        Byte3
        Byte4 目標寄存器地址(十六進制ASCII碼)
        Byte5
        Byte6
        Byte7
        Byte8
        Byte9
        Byte10
        Byte11
        Byte12 讀/寫字節數M(十六進制ASCII碼)
        Byte13
        Byte14 要寫入的數據(十六進制ASCII碼)
        Byte15
        Byte16
        Byte17
        Byte18
        Byte19
        Byte20
        Byte21
        Byte22
        Byte23
        Byte24
        Byte25
        Byte26
        Byte27
        Byte28
        Byte29
        Byte30 BCC校驗碼(十六進制ASCII碼)
        Byte31
        Byte32 結束字符


        表2 反饋信息格式
        Byte0 起始字符
        Byte1 狀態信息
        Byte2 數據區(十六進制ASCII碼)
        Byte3
        Byte4
        Byte5
        Byte6
        Byte7
        Byte8
        Byte9
        Byte10
        Byte11
        Byte12
        Byte13
        Byte14
        Byte15
        Byte16
        Byte17
        Byte18 BCC校驗碼(十六進制ASCII碼)
        Byte19
        Byte20 結束字符


        PLC程序執行過程
        ----PLC在第一次掃描時執行初始化子程序,對端口及RCV指令進行初始化。初始化完成后,運行RCV指令使端口處于接受狀態。
        ----RCV會將以"g"開頭"G"結尾的指令保存到接收緩沖區,并同時產生接收完成中斷。
        ----RCVcomplete中斷服務程序用來處理接收完成中斷事件,它會將接收緩沖區中的十六進制ASCII碼還原成數據并保存,同時置位Verify子程序的觸發條件(M0.1)。 ----Verify子程序首先復位本身的觸發條件以防止子程序被重復調用,然后求出接收緩沖區中指令的BCC校驗碼并與指令中的BCC校驗碼進行比對。如果相等則置BCC碼校驗正確的標志位(M0.0)為1;如果指令格式正確(指令的結束標志在接收緩沖區中特定的位置VB133)而BCC碼不相等,則發送代表BCC校驗碼錯誤的反饋信息;如果指令格式不正確(VB133中不是指令的結束標志),則返回代表指令格式錯誤的反饋信息。
        ----Read子程序的觸發條件為:指令中的站地址與本機站地址相符、指令類型為讀指令、BCC檢驗碼正確。當條件滿足時,Read子程序被執行。Read子程序首先禁止RCV,然后將指令所要讀取的數據轉換成十六進制ASCII碼并寫入發送緩沖區、計算BCC檢驗碼、最后發送反饋信息。
        ----Write子程序的觸發條件為:指令中的站地址與本機站地址相符、指令類型為寫指令、BCC檢驗碼正確。當條件滿足時,Write子程序被執行。Write子程序首先禁止RCV,然后將指令中的數據寫入目標寄存器,最后發送代表寫入正確的反饋信息。
        ----PLC每接到一條指令后都會發送一條反饋信息,當反饋信息發送完成時,會產生發送完成中斷,XMTcomplete中斷服務程序用來處理發送完成中斷事件。在XMTcomplete中斷服務程序中所要執行的操作包括:復位BCC校驗碼正確的標志位(M0.0);允許RCV;bcc碼寄存器清零;重新裝入用于計算BCC校驗碼的地址指針;接收緩沖區中存放指令結束字符的字節VB133清零(用來判斷下一條指令格式是否正確)。

        PLC寄存器地址分配
        ----此程序占用PLC寄存器的VB100-VB199,內部繼電器占用M0.0和M0.1。寄存器地址分配見表3、表4、表5、表6。

        表3 接收緩沖區
        VB100 字符數              
        VB101 起始字符 Byte0
        VB102 指令類型(讀/寫) Byte1
        VB103 目標PLC站地址(十六進制ASCII碼) Byte2
        VB104 Byte3
        VB105 目標寄存器地址(十六進制ASCII碼) Byte4
        VB106 Byte5
        VB107 Byte6
        VB108 Byte7
        VB109 Byte8
        VB110 Byte9
        VB111 Byte10
        VB112 Byte11
        VB113 讀/寫字節數M(十六進制ASCII碼) Byte12
        VB114 Byte13
        VB115 要寫入的數據(十六進制ASCII碼) Byte14
        VB116 Byte15
        VB117 Byte16
        VB118 Byte17
        VB119 Byte18
        VB120 Byte19
        VB121 Byte20
        VB122 Byte21
        VB123 Byte22
        VB124 Byte23
        VB125 Byte24
        VB126 Byte25
        VB127 Byte26
        VB128 Byte27
        VB129 Byte28
        VB130 Byte29
        VB131 BCC校驗碼(十六進制ASCII碼) Byte30
        VB132 Byte31
        VB133 結束字符 Byte32


        表4 譯碼區
        VB134 PLC站號(ATH from VB103-VB104)
        VB135 合成為VD135作為目標寄存器的地址指針
        (ATH from VB105-VB112)  
        VB136
        VB137
        VB138
        VB139 讀/寫字節數(ATH from VB113-VB114)
        VB140 bcc碼(ATH from VB131-VB132)
        VB141 未使用
        VB142
        VB143
        VB144
        VB145
        VB146
        VB147
        VB148
        VB149 和成為VD149作為VB102的地址指針
        用以計算BCC校驗碼  
        VB150
        VB151
        VB152


        表5 發送緩沖區
        VB153 字符數              
        VB154 起始字符 Byte0
        VB155 狀態信息 Byte1
        VB156 數據區(十六進制ASCII碼) Byte2
        VB157 Byte3
        VB158 Byte4
        VB159 Byte5
        VB160 Byte6
        VB161 Byte7
        VB162 Byte8
        VB163 Byte9
        VB164 Byte10
        VB165 Byte11
        VB166 Byte12
        VB167 Byte13
        VB168 Byte14
        VB169 Byte15
        VB170 Byte16
        VB171 Byte17
        VB172 BCC校驗碼(十六進制ASCII碼) Byte18
        VB173 Byte19
        VB174 結束字符 Byte20


        表6 其它
        VB175 合成為VW175
        作為接收時計算bcc碼循環的INDX  
        VB176
        VB177 合成為VW177
        作為發送時計算bcc碼循環的INDX  
        VB178
        VB179 接收數據的bcc碼
        VB180 發送數據的bcc碼
        VB181 合成為VD181作為VB156的地址指針
        (計算發送反饋信息的bcc碼時使用)  
        VB182
        VB183
        VB184
        VB185至VB198 未使用
        VB199 本機站號


        程序清單

        主程序:
        NETWORK 1
        LD SM0.1 //第一次掃描調用初始化子程序
        CALL initialize  
         
        NETWORK 2
        LDB= VB134, VB199  //指令中的站地址與本機站地址相符
        AB= VB102, 5 //指令類型為讀指令
        A M0.0 //BCC碼校驗正確
        CALL Read //調用讀子程序
         
        NETWORK 3
        LDB= VB134, VB199 //指令中的站地址與本機站地址相符
        AB=  VB102, 6 //指令類型為寫指令
        A M0.0 //BCC碼校驗正確
        CALL Write //調用寫子程序
         
        NETWORK 4
        LD M0.1 //指令接收完成后調用BCC碼校驗子程序
        CALL Verify  
         
        NETWORK 5
        LD SM4.5 //當端口空閑時啟動RCV
        RCV VB100, 0  


        Read子程序:
        NETWORK 1
        LD SM0.0 //停止端口0的接收
        R SM87.7, 1  
        R M0.0, 1  
        RCV VB100, 0  
         
        NETWORK 2
        LD SM0.0 //將數據寫入發送緩沖區
        MOVB  103, VB154  
        MOVB 1, VB155  
        HTA *VD135, VB156, 16  
        MOVB 26, VB174  
        MOVB 21, VB153  
         
        NETWORK 3
        LD SM0.0 //計算BCC校驗碼
        FOR VW177, +1, +16  
         
        NETWORK 4
        LD SM0.0  
        XORB *VD181, VB180  
         
        NETWORK 5
        LD SM0.0  
        INCD VD181  
         
        NETWORK 6
        NEXT    
         
        NETWORK 7
        LD SM0.0  
        HTA VB180, VB172, 2 //BCC校驗碼寫入發送緩沖區
         
        NETWORK 8
        LD SM4.5 //發送反饋信息
        XMT VB153, 0  


        Write子程序:
        NETWORK 1
        LD SM0.0 //停止端口0的接收
        R SM87.7, 1  
        R M0.0, 1  
        RCV VB100, 0  
         
        NETWORK 2
        LD SM0.0 //裝入要寫如數據源的地址指針
        MOVD &VB115, VD145  
         
        NETWORK 3
        LD SM0.0 //寫入數據
        ATH *VD145, *VD135, VB139  
         
        NETWORK 4
        LD SM0.0 //指令執行的反饋信息寫入發送緩沖區
        MOVB 21, VB153  
        MOVB 103, VB154  
        MOVB 2, VB155  
        MOVB 26, VB174  
         
        NETWORK 5
        LD SM4.5 //發送指令執行的反饋信息
        XMT VB153, 0  


        Verify子程序:
        NETWORK 1
        LD SM0.0  
        R M0.1, 1 //復位verify子程序的執行條件
         
        NETWORK 2
        LD SM0.0 //計算BCC碼
        FOR VW175, +1, +29  
         
        NETWORK 3
        LD SM0.0  
        XORB *VD149, VB179  
         
        NETWORK 4
        LD SM0.0  
        INCD VD149  
         
        NETWORK 5
        NEXT    
         
        NETWORK 6
        LDB= VB179, VB140 //當BCC碼校驗正確時,M0.0置1
        AB= VB133, 71  
        S M0.0, 1  
         
        NETWORK 7
        LDB= VB133, 71 //BCC碼錯誤時發送反饋信息
        AB<> VB179, VB140  
        MOVB 21, VB153  
        MOVB 103, VB154  
        MOVB 3, VB155  
        MOVB 26, VB174  
        R SM87.7, 1  
        RCV VB100, 0  
        XMT VB153, 0  
         
        NETWORK 8
        LDB<> VB133, 71 //指令格式錯誤或RCV超時時發送反饋信息
        MOVB 21, VB153  
        MOVB 103, VB154  
        MOVB 4, VB155  
        MOVB 26, VB174  
        R SM87.7, 1  
        RCV VB100, 0  
        XMT VB153, 0  


        Initialize子程序:
        NETWORK 1
        LD SM0.0  
        MOVB 9, SMB30 //0口"9600,N,8,1"
         
        NETWORK 2
        LD SM0.0 //RCV指令初始化
        MOVB 16#EC, SMB87  
        MOVB 103, SMB88  
        MOVB 71, SMB89  
        MOVB +1000, SMW92  
        MOVB 35, SMB94  
        R SM87.2, 1  
         
        NETWORK 3
        LD SM0.0  
        ATCH RCVcomplete, 23 //連接口0接收完成的中斷
         
        NETWORK 4
        LD SM0.0  
        ATCH XMTcomplete, 9 //連接口0發送完成的中斷
         
        NETWORK 5
        LD SM0.0  
        ENI   //中斷允許
         
        NETWORK 6
        LD SM0.0  
        MOVB 2, VB199 //將本機站地址裝入寄存器
         
        NETWORK 7
        LD SM0.0  
        MOVB &VB102, VD149 //裝入地址指針
        MOVB 0, VB179 //BCC碼寄存器清零
        MOVB &VB156, VD181 //裝入地址指針
        MOVB 0, VB180 //BCC碼寄存器清零


        RCVcomplete中斷程序
        NETWORK 1
        LD SM0.0  
        ATH VB103, VB134, 2 //指令譯碼(ASCII碼到十六進制)
        ATH VB105, VB135, 8  
        ATH VB113, VB139, 2  
        ATH VB131, VB140, 2  
        S M0.1, 1 //置位Verify子程序的觸發條件
        MOVB 0, VB179 //BCC碼寄存器清零
        MOVD &VB102, VD149 //裝入地址指針


        XMTcomplete中斷程序
        NETWORK 1
        LD SM0.0  
        R M0.0, 1 //復位BCC校驗碼正確的標志位
        S SM87.7, 1 //允許口0進行接收
        MOVB 0, VB179 //BCC校驗碼寄存器清零
        MOVB 0, VB180 //BCC校驗碼寄存器清零
        MOVD &VB102, VD149 //重新裝入地址指針
        MOVD &VB156, VD181  
        MOVB 0, VB133  //接收緩沖區中存放指令結束字符的字節清零

        我還有PLC的程序代碼,但是不知道怎么傳上來。
        1348
        qx100
        文章數:80
        年度積分:56
        歷史總積分:1348
        注冊時間:2005/7/16
        發站內信
        發表于:2005/10/21 9:20:00
        #1樓
        精彩!
        1348
        qx100
        文章數:80
        年度積分:56
        歷史總積分:1348
        注冊時間:2005/7/16
        發站內信
        發表于:2005/10/21 9:42:00
        #2樓
        再次頂!真里尋她千百度,今日終于覓得。謝謝,能否把PLC的程序代碼傳給我?
        bijingqun9600@126.com
        1144
        eeduzhongfa
        文章數:68
        年度積分:50
        歷史總積分:1144
        注冊時間:2004/12/10
        發站內信
        發表于:2005/10/21 15:14:00
        #3樓
        計算機如何發送和接收呢?使用什么軟件進行發送和接收?
        1158
        broadbct
        文章數:64
        年度積分:53
        歷史總積分:1158
        注冊時間:2005/1/20
        發站內信
        發表于:2005/10/24 17:27:00
        #4樓
        上床的兄弟:計算機是自己做軟件的。用VB或VC做都可以。
        1158
        broadbct
        文章數:64
        年度積分:53
        歷史總積分:1158
        注冊時間:2005/1/20
        發站內信
        發表于:2005/10/24 17:34:00
        #5樓
        bijingqun9600@126.com,
        我已經發送過來了。
        1348
        qx100
        文章數:80
        年度積分:56
        歷史總積分:1348
        注冊時間:2005/7/16
        發站內信
        發表于:2005/10/25 8:56:00
        #6樓
        我已收到,深表感謝!好人一生平安!
        1008
        xtishgmtd
        文章數:30
        年度積分:50
        歷史總積分:1008
        注冊時間:2005/10/28
        發站內信
        發表于:2005/10/28 14:23:00
        #7樓
        發給我!深表感謝!好人一生平安!
        xtishgmtd@126.com
        962
        ljytzg
        文章數:2
        年度積分:50
        歷史總積分:962
        注冊時間:2005/3/19
        發站內信
        發表于:2005/11/9 20:59:00
        #8樓
        cp340
        S7-300能用嗎?
        1158
        broadbct
        文章數:64
        年度積分:53
        歷史總積分:1158
        注冊時間:2005/1/20
        發站內信
        發表于:2005/11/11 15:14:00
        #9樓
        cp340
        S7-300能用嗎?
        上樓的兄弟,不能!

        關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 非法和不良信息舉報

        工控網客服熱線:0755-86369299
        版權所有 工控網 Copyright©2026 Gkong.com, All Rights Reserved

        124.8008
        主站蜘蛛池模板: 色噜噜狠狠色综合中文字幕| 丁香婷婷在线视频| 少妇又紧又色又爽又刺激视频| 国产精品中文字幕一二三| 欧美人成精品网站播放| 婷婷色综合视频在线观看| 国产高在线精品亚洲三区| 久久精品国产亚洲av热一区| 中文字幕国产精品日韩| 中文字幕第一区| 色综合一本到久久亚洲91| 99久久国产综合精品成人影院| 国产福利精品一区二区| 亚洲熟女乱综合一区二区三区| 中文字幕精品久久久久人妻红杏1| 亚洲欧美高清在线精品一区二区| 成 人 a v免费视频在线观看| 国产高清自产拍av在线| 日本中文字幕一区二区三| 亚洲永久精品免费在线看| 亚洲熟女精品中文字幕| 日韩av毛片福利国产福利| 99国产精品永久免费视频| 国产精品亚洲欧美大片在线看| 欧美日韩视频综合一区无弹窗 | 久久国产成人高清精品亚洲| 亚洲综合一区二区三区不卡| av色蜜桃一区二区三区| 国产青榴视频在线观看| 中文字幕人成乱码熟女app| 亚洲乱理伦片在线观看中字| 永久免费无码网站在线观看个| 亚洲av成人无码天堂| 久久99精品久久久久久欧洲站| 青青草无码免费一二三区| 天天夜碰日日摸日日澡性色AV| 国产精品国产高清国产专区| 极品少妇的粉嫩小泬视频| 蜜臀视频在线观看一区二区| 国产91丝袜在线播放动漫| 日韩精品一区二区av在线|