欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

技術頻道

自由口模式下PLC與計算機的通信

概述
----本例說明如何以自由協議實現計算機與S7-200的通信,計算機作為主站,可以實現對PLC從站各寄存器的讀/寫操作。
----計算機通過COM口發送指令到PLC的PORT0(或PORT1)口,PLC通過RCV接收指令,然后對指令進行譯碼,譯碼后調用相應的讀/寫子程序實現指令要求的操作,并返回指令執行的狀態信息。

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

指令格式定義

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

表2 反饋信息格式

Byte0起始字符
Byte1狀態信息
Byte2數據區(十六進制ASCII碼)
Byte3
Byte4
Byte5
Byte6
Byte7
Byte8
Byte9
Byte10
Byte11
Byte12
Byte13
Byte14
Byte15
Byte16
Byte17
Byte18BCC校驗碼(十六進制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
VB104Byte3
VB105目標寄存器地址(十六進制ASCII碼)Byte4
VB106Byte5
VB107Byte6
VB108Byte7
VB109Byte8
VB110Byte9
VB111Byte10
VB112Byte11
VB113讀/寫字節數M(十六進制ASCII碼)Byte12
VB114Byte13
VB115要寫入的數據(十六進制ASCII碼)Byte14
VB116Byte15
VB117Byte16
VB118Byte17
VB119Byte18
VB120Byte19
VB121Byte20
VB122Byte21
VB123Byte22
VB124Byte23
VB125Byte24
VB126Byte25
VB127Byte26
VB128Byte27
VB129Byte28
VB130Byte29
VB131BCC校驗碼(十六進制ASCII碼)Byte30
VB132Byte31
VB133結束字符Byte32

表4 譯碼區

VB134PLC站號(ATH from VB103-VB104)
VB135合成為VD135作為目標寄存器的地址指針
(ATH from VB105-VB112)
VB136
VB137
VB138
VB139讀/寫字節數(ATH from VB113-VB114)
VB140bcc碼(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
VB157Byte3
VB158Byte4
VB159Byte5
VB160Byte6
VB161Byte7
VB162Byte8
VB163Byte9
VB164Byte10
VB165Byte11
VB166Byte12
VB167Byte13
VB168Byte14
VB169Byte15
VB170Byte16
VB171Byte17
VB172BCC校驗碼(十六進制ASCII碼)Byte18
VB173Byte19
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
LDSM0.1//第一次掃描調用初始化子程序
CALLinitialize
NETWORK 2
LDB=VB134, VB199 //指令中的站地址與本機站地址相符
AB=VB102, 5//指令類型為讀指令
AM0.0//BCC碼校驗正確
CALLRead//調用讀子程序
NETWORK 3
LDB=VB134, VB199//指令中的站地址與本機站地址相符
AB= VB102, 6//指令類型為寫指令
AM0.0//BCC碼校驗正確
CALLWrite//調用寫子程序
NETWORK 4
LDM0.1//指令接收完成后調用BCC碼校驗子程序
CALLVerify
NETWORK 5
LDSM4.5//當端口空閑時啟動RCV
RCVVB100, 0

Read子程序:

NETWORK 1
LDSM0.0//停止端口0的接收
RSM87.7, 1
RM0.0, 1
RCVVB100, 0
NETWORK 2
LDSM0.0//將數據寫入發送緩沖區
MOVB 103, VB154
MOVB1, VB155
HTA*VD135, VB156, 16
MOVB26, VB174
MOVB21, VB153
NETWORK 3
LDSM0.0//計算BCC校驗碼
FORVW177, +1, +16
NETWORK 4
LDSM0.0
XORB*VD181, VB180
NETWORK 5
LDSM0.0
INCDVD181
NETWORK 6
NEXT
NETWORK 7
LDSM0.0
HTAVB180, VB172, 2//BCC校驗碼寫入發送緩沖區
NETWORK 8
LDSM4.5//發送反饋信息
XMTVB153, 0

Write子程序:

NETWORK 1
LDSM0.0//停止端口0的接收
RSM87.7, 1
RM0.0, 1
RCVVB100, 0
NETWORK 2
LDSM0.0//裝入要寫如數據源的地址指針
MOVD&VB115, VD145
NETWORK 3
LDSM0.0//寫入數據
ATH*VD145, *VD135, VB139
NETWORK 4
LDSM0.0//指令執行的反饋信息寫入發送緩沖區
MOVB21, VB153
MOVB103, VB154
MOVB2, VB155
MOVB26, VB174
NETWORK 5
LDSM4.5//發送指令執行的反饋信息
XMTVB153, 0

Verify子程序:

NETWORK 1
LDSM0.0
RM0.1, 1//復位verify子程序的執行條件
NETWORK 2
LDSM0.0//計算BCC碼
FORVW175, +1, +29
NETWORK 3
LDSM0.0
XORB*VD149, VB179
NETWORK 4
LDSM0.0
INCDVD149
NETWORK 5
NEXT
NETWORK 6
LDB=VB179, VB140//當BCC碼校驗正確時,M0.0置1
AB=VB133, 71
SM0.0, 1
NETWORK 7
LDB=VB133, 71//BCC碼錯誤時發送反饋信息
AB<>VB179, VB140
MOVB21, VB153
MOVB103, VB154
MOVB3, VB155
MOVB26, VB174
RSM87.7, 1
RCVVB100, 0
XMTVB153, 0
NETWORK 8
LDB<>VB133, 71//指令格式錯誤或RCV超時時發送反饋信息
MOVB21, VB153
MOVB103, VB154
MOVB4, VB155
MOVB26, VB174
RSM87.7, 1
RCVVB100, 0
XMTVB153, 0

Initialize子程序:

NETWORK 1
LDSM0.0
MOVB9, SMB30//0口"9600,N,8,1"
NETWORK 2
LDSM0.0//RCV指令初始化
MOVB16#EC, SMB87
MOVB103, SMB88
MOVB71, SMB89
MOVB+1000, SMW92
MOVB35, SMB94
RSM87.2, 1
NETWORK 3
LDSM0.0
ATCHRCVcomplete, 23//連接口0接收完成的中斷
NETWORK 4
LDSM0.0
ATCHXMTcomplete, 9//連接口0發送完成的中斷
NETWORK 5
LDSM0.0
ENI //中斷允許
NETWORK 6
LDSM0.0
MOVB2, VB199//將本機站地址裝入寄存器
NETWORK 7
LDSM0.0
MOVB&VB102, VD149//裝入地址指針
MOVB0, VB179//BCC碼寄存器清零
MOVB&VB156, VD181//裝入地址指針
MOVB0, VB180//BCC碼寄存器清零

RCVcomplete中斷程序

NETWORK 1
LDSM0.0
ATHVB103, VB134, 2//指令譯碼(ASCII碼到十六進制)
ATHVB105, VB135, 8
ATHVB113, VB139, 2
ATHVB131, VB140, 2
SM0.1, 1//置位Verify子程序的觸發條件
MOVB0, VB179//BCC碼寄存器清零
MOVD&VB102, VD149//裝入地址指針

XMTcomplete中斷程序

NETWORK 1
LDSM0.0
RM0.0, 1//復位BCC校驗碼正確的標志位
SSM87.7, 1//允許口0進行接收
MOVB0, VB179//BCC校驗碼寄存器清零
MOVB0, VB180//BCC校驗碼寄存器清零
MOVD&VB102, VD149//重新裝入地址指針
MOVD&VB156, VD181
MOVB0, VB133 //接收緩沖區中存放指令結束字符的字節


文章版權歸西部工控xbgk所有,未經許可不得轉載。

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

      9000px;">

          亚洲永久免费视频| 99久久免费视频.com| jlzzjlzz国产精品久久| 国产精品久久久久久久久久久免费看 | 国产欧美一区二区三区鸳鸯浴| 国产综合久久久久影院| 国产精品剧情在线亚洲| 3atv一区二区三区| 懂色中文一区二区在线播放| 亚洲一区电影777| 欧美韩日一区二区三区| 欧美日韩中文精品| 国产乱人伦精品一区二区在线观看 | 欧美日韩午夜在线视频| 激情国产一区二区| 成人免费视频caoporn| 亚洲一卡二卡三卡四卡| 97精品久久久久中文字幕| 久久精品国产精品亚洲红杏| 国产精品国产精品国产专区不蜜 | 亚洲老妇xxxxxx| 精品少妇一区二区三区日产乱码| 高清不卡在线观看av| 日韩av中文字幕一区二区三区| 亚洲欧洲日韩在线| 久久久亚洲综合| 欧美一区二区久久久| 欧美色视频在线观看| 播五月开心婷婷综合| 国内成人免费视频| 午夜精品免费在线| 亚洲国产精品久久久久秋霞影院| 国产精品视频一二| 久久婷婷综合激情| 久久蜜桃av一区精品变态类天堂| 欧美bbbbb| 日本不卡的三区四区五区| 成人毛片在线观看| 91精品国产综合久久精品麻豆| 久久免费看少妇高潮| 一区二区三区中文字幕在线观看| 另类小说综合欧美亚洲| 在线亚洲精品福利网址导航| 久久久综合视频| 日韩精品五月天| 色综合天天狠狠| 久久久亚洲精品石原莉奈| 亚洲国产中文字幕在线视频综合| 国产乱码精品1区2区3区| 欧美日韩精品久久久| 国产精品进线69影院| 91精品一区二区三区在线观看| 精品一区二区三区香蕉蜜桃 | 亚洲狠狠爱一区二区三区| 亚洲国产一区二区三区| 天天色图综合网| 成人av在线网站| 99精品视频一区二区三区| 99久精品国产| 欧美日韩成人综合天天影院| 欧美日韩久久一区二区| 在线成人小视频| 精品剧情v国产在线观看在线| 精品国产污网站| 中文字幕高清不卡| 亚洲一区二区三区激情| 捆绑调教一区二区三区| 成人免费视频视频| 日本乱人伦一区| 69堂亚洲精品首页| 精品国产成人系列| 中文字幕一区二区三区乱码在线 | 色综合久久88色综合天天| 欧美日韩一区小说| 亚洲精品一区二区三区福利 | 国产在线精品一区二区夜色| 成人综合婷婷国产精品久久蜜臀 | 欧美夫妻性生活| 久久久噜噜噜久久人人看| 亚洲欧美在线视频| 五月开心婷婷久久| 成人亚洲一区二区一| 欧美精三区欧美精三区| 日本一区二区三区国色天香| 婷婷综合久久一区二区三区| av中文字幕在线不卡| 欧美成人官网二区| 亚洲制服丝袜av| 国产乱人伦偷精品视频不卡| 欧美日本韩国一区| 最近中文字幕一区二区三区| 久久99国产精品免费网站| 国产欧美一区二区精品秋霞影院| 蜜桃久久久久久| 日本一区二区三区dvd视频在线| 成人黄页毛片网站| 亚洲午夜三级在线| 欧美一区二区三区性视频| 国产在线看一区| 亚洲精品国产无套在线观| 在线电影国产精品| 国产成人精品亚洲午夜麻豆| 中文字幕一区av| 91精品一区二区三区在线观看| 激情综合一区二区三区| 国产精品日日摸夜夜摸av| 欧美性一二三区| 久久99热狠狠色一区二区| 国产精品网站在线| 欧美日韩国产成人在线91| 国模少妇一区二区三区| 一区二区三区资源| 久久综合99re88久久爱| 日本久久精品电影| 成人看片黄a免费看在线| 精品久久久久香蕉网| 天天操天天综合网| 欧美色图免费看| 午夜精品福利视频网站| 91成人国产精品| 亚洲第四色夜色| 日韩一级大片在线观看| 天天色 色综合| 91精品在线免费观看| 久久国产精品区| 久久久精品国产免费观看同学| 日本一区二区在线不卡| 北条麻妃一区二区三区| 国内精品免费**视频| 日韩av一区二区三区| 日本不卡一区二区三区高清视频| 欧美三级视频在线| 久久精品久久99精品久久| 日韩精品中文字幕一区二区三区| 六月丁香婷婷色狠狠久久| 国产日韩欧美制服另类| 欧美日韩大陆一区二区| av网站一区二区三区| 欧美一个色资源| 中文字幕在线不卡一区二区三区| 91在线porny国产在线看| 午夜影视日本亚洲欧洲精品| 日韩欧美卡一卡二| 波多野结衣中文一区| 亚洲国产另类精品专区| 日韩午夜三级在线| 丁香激情综合五月| 亚洲福利一二三区| 国产日韩精品一区二区三区| 91视频免费播放| 韩国一区二区在线观看| 亚洲欧美成aⅴ人在线观看| 欧美美女一区二区| 成人性视频免费网站| 精品中文字幕一区二区| 精品一区二区三区免费毛片爱| 天堂一区二区在线| 精品国产髙清在线看国产毛片| 亚洲国产欧美另类丝袜| 亚洲国产高清不卡| 91.com视频| 成人毛片视频在线观看| 青青草91视频| 亚洲欧美日韩国产中文在线| 精品国产一区二区国模嫣然| 欧美最猛黑人xxxxx猛交| 韩国av一区二区| 日本亚洲一区二区| 亚洲摸摸操操av| 国产婷婷色一区二区三区四区| 欧美日韩精品一区二区| 91在线观看下载| 成人免费黄色在线| 精品在线播放免费| 日本特黄久久久高潮| 亚洲桃色在线一区| 国产精品日日摸夜夜摸av| 精品欧美久久久| 日韩欧美亚洲国产另类| 91麻豆精品91久久久久同性| 欧美日韩视频在线一区二区| av网站免费线看精品| 国产成人精品三级| 国产做a爰片久久毛片| 麻豆成人久久精品二区三区小说| 亚洲国产精品天堂| 亚洲电影中文字幕在线观看| 日韩毛片高清在线播放| 国产精品私人影院| 久久综合久久综合九色| 欧美一级在线视频| 日韩一区二区三区四区五区六区| 欧美在线免费观看视频| 欧美自拍偷拍一区| 欧美午夜在线一二页| 欧美在线999| 欧美美女网站色| 日韩精品自拍偷拍| 欧美精品一区二区三区四区| 亚洲精品在线观|