三菱FX PLC學習之通信指令(上)
吳翠萍
發(fā)布于2020-11-20 18:45
20
2
標簽:三菱PLC,三菱FX PLC,PLC指令
【點擊領取】三菱案例 | 西門子案例 | 電工手冊 | 工具箱 軟件
【點擊獲取】三菱PLC例程117個|西門子PLC例程777個
【點擊下載】2020最新電工仿真軟件
通信指令本身不難,難的是對通信的理解。在學習PLC通信指令之前,我曾嘗試去看通信相關的課程,然后告訴自己:算了,不必勉強自己,學不會的始終學不會。
數(shù)據(jù)的傳輸方式有并行和串行兩種,其中并行是指同一時刻可以傳輸多個bit位的信號,有多少個信號位就需要多少根信號線;而串是指同一時刻只能傳輸一個bit位的信號,只需要一根信號線,如下圖所示。PLC與其他設備的通信就是以串行的方式進行的。
所以文章所謂的通信指令是基于串行的傳輸方式,這次先分享串行數(shù)據(jù)傳送指令RS與校驗碼指令CCD,下次接著分享十六進制字符轉ASCII碼的交換指令ASCI與ASCII碼轉十六進制字符的交換指令HEX。
01、數(shù)據(jù)傳送指令RS
RS指令是PLC與外圍設備進行數(shù)據(jù)傳輸?shù)目刂浦噶?,從編程手冊截圖可以看到,RS指令不可用于32位,也沒有脈沖執(zhí)行型,它有4個操作數(shù),源址 S· 和和終址 D· 只能是數(shù)據(jù)寄存器D,還有兩個操作數(shù)n、m可以是常數(shù)K、H和寄存器D。RS指令的梯形圖形式圖下圖所示。
源址S是所發(fā)送數(shù)據(jù)的字元件首址,D是需接收數(shù)據(jù)的字元件首址;而m是發(fā)送數(shù)據(jù)的個數(shù),n是接收數(shù)據(jù)的個數(shù),其中n、m的取值范圍為0~4096且n m≤8000。這里要注意的數(shù)是,S和D不能使用相同編號的數(shù)據(jù)寄存器,但m和n可以使用同一數(shù)據(jù)寄存器。在驅動條件成立時,RS指令告訴PLC做好準備,接下來將要發(fā)送m個以S為首址的數(shù)據(jù),并接收n個以D為首址的數(shù)據(jù)。
例上圖所示的執(zhí)行指令RS D0 K5 D100 K10 ,X0置ON,寄存器D0~D5的開始做好發(fā)送數(shù)據(jù)的準備,而D100~D110也開始做好接收數(shù)據(jù)的準備。即RS指令執(zhí)行時,數(shù)據(jù)并沒有馬上開始傳輸,而是處于待命狀態(tài)。
RS指令的應用,會涉及到幾個特殊軟元件,即下圖所示的D8120、M8161、M8122、M8123。所謂通信格式字,簡單來說就是PLC與外圍設備進行數(shù)據(jù)傳輸時所約定的數(shù)據(jù)格式,例如數(shù)據(jù)傳輸怎么開始、如何結束、波特率為多少(每秒傳輸bit位的個數(shù))等。
所以,在應用RS指令進行通信前,應先確定通信格式字。這有點像打籃球,比賽時跟隊友溝通用手勢進行,什么手勢進攻、什么手勢擋拆、什么手勢用什么戰(zhàn)術等,這都得事先約定。
M8161的不同狀態(tài)決定了RS指令對數(shù)據(jù)的處理方式:低8位模式或16位模式。
所謂低8位,是指RS指令只對源址S和終址D的低8位數(shù)據(jù)進行傳送和接收,而忽略高8位的數(shù)據(jù)。同理,所謂16位模式是指RS指令對源址S和終址D的16位數(shù)據(jù)均做發(fā)送和接收處理。例如PLC要發(fā)送數(shù)據(jù):H01、H23、HAB、HCD,接收數(shù)據(jù):H45、H67、H89。
(1)若M8161=ON,如下圖所示,每個數(shù)據(jù)寄存器只有低8位用于保存所需的數(shù)據(jù),而高8位為零,不做處理。
(2)若M8161=OFF,如下圖所示,每個數(shù)據(jù)寄存器共有16位,均用于存放數(shù)據(jù),與低8位模式相比,少用了一半的數(shù)據(jù)寄存器。具體用什么模式根據(jù)實際情況而定,一般是采用低8位的數(shù)據(jù)處理模式。
由M8161的功能和用途可以發(fā)現(xiàn)除RS指令外,CCD、ASCI、HEX指令對數(shù)據(jù)的處理模式也是由M8161的狀態(tài)控制。也就是說,程序中,一旦M8161的狀態(tài)被設定,RS、CCD、ASCI、HEX指令對數(shù)據(jù)的處理模式均相同。
特殊繼電器M8122和M8123是數(shù)據(jù)發(fā)送或接受的標志繼電器,它們的狀態(tài)直接決定了數(shù)據(jù)是否傳輸。
若把數(shù)據(jù)傳輸看成賽跑,則執(zhí)行RS指令就相當于裁判喊:“預備!”,此時各選手做好蹲踞;M8122置ON,相當于裁判喊:“跑!”,選手們開始跑步,即數(shù)據(jù)開始傳送,M8123也是類似的道理。
下圖為RS指令應用的梯形圖示例,在數(shù)據(jù)發(fā)送和接收之前,先確定好數(shù)據(jù)處理模式和寫入通信格式字,如圖中的H0C87為一種通信格式字。
將所需發(fā)送的數(shù)據(jù)先保存到D0~D9,然后將M8122置ON,開始發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送完畢后,繼續(xù)接收數(shù)據(jù)并相繼保存到PLC的D100~D109中,數(shù)據(jù)接收完畢后,M8123自動置ON,此時PLC將D100~D109所存的數(shù)據(jù)轉存到D300~D309中,最后將M8123復位,為下一次數(shù)據(jù)接收作準備。
數(shù)據(jù)傳送指令RS的理解并不簡單,畢竟是通信,說到通信,我流了一地的辛酸淚。RS指令在平時用得不少,希望大家認真學習哦。
02、校驗碼指令CCD
所謂校驗,簡單來說,就是判斷數(shù)據(jù)傳送時所傳送的數(shù)據(jù)的正確性。而校驗碼就是校驗的結果,不同的校驗方式有著不同的校驗結果。校驗碼指令CCD就是針對求和校驗和異或校驗而設計的,其編程手冊截圖如下圖所示。
所謂求和校驗,是指將參與校驗的數(shù)據(jù)求和,將求和結果的低8位作為校驗碼。例如求數(shù)據(jù)H12、H23、H34、H45、H56的求和校驗碼,直接將這幾個數(shù)據(jù)相加等于H104,取低8位為H04就是其求和校驗碼。
同理,異或校驗,就是將參與校驗的數(shù)據(jù)依次按位進行異或運算,最終結果即為異或校驗碼(列偶校驗碼)。如下圖所示,求數(shù)據(jù)H12、H23、H34、H45、H56進行異或檢驗,先將H12與H23按位異或,結果為H31,然后將H31與H34按位異或……最終結果為H16,即異或檢驗碼為H16。
從編程手冊截圖可得,CCD指令不可用于32位,有脈沖執(zhí)行型和連續(xù)執(zhí)行型兩種,操作數(shù)有3個。其梯形圖形式如下圖所示,源址S為參與校驗的數(shù)據(jù)存儲字元件首址;終址D為求和校驗碼存儲字元件地址,其D 1為存儲列偶檢驗碼的地址;n為參與校驗數(shù)據(jù)的個數(shù),取值范圍為0~256。
當驅動條件成立時,對S所存的數(shù)據(jù)分別求解其求和校驗碼和列偶校驗碼,并存到終址D和D 1中。例如執(zhí)行指令CCD D0 D100 K10,對D0~D9的數(shù)據(jù)求解其求和校驗碼和列偶校驗碼,并將求和校驗碼存到D100中,將列偶校驗碼存到D101中。
在上文中提到,特殊繼電器M8161的狀態(tài)也決定了CCD指令的數(shù)據(jù)處理模式。若M8161=ON,CCD指令為8位數(shù)據(jù)處理模式時,僅對首址為S的n個數(shù)據(jù)寄存器的低8位數(shù)據(jù)進行求和、異或,而為16位數(shù)據(jù)處理模式時,將首址為S的n個數(shù)據(jù)寄存器的高8位、低8位看成兩部分,分別進行求和、異或。
例如執(zhí)行指令CCD D0 D100 K3,其中(D0)=H0123,(D1)=H2345,(D2)=H3456。(1)若M8161=ON,對D0~D2的低8位進行校驗,求和校驗碼為H23 H45 H56=HBE,列偶校驗碼為H30;(2)M8161=OFF,對D0~D3的16位進行校驗,求和校驗碼為H23 H01 H45 H23 H56 H34=H16(結果為H116,取低8位),其中H01、H23、H34分別為D0D2的高8位,同理可得列偶校驗碼為H26。
求和校驗碼和異或校驗碼都比較常用,所以也很有必要理解其含義。
那么,這次的學習分享就到這里,共勉。
注:本文章內容都是基于三菱FX PLC 2N所寫
選自《三菱FX系列PLC功能指令詳解》第七章第70~73課時
(技成培訓原創(chuàng),作者:楊思慧,未經授權不得轉載,違者必究!)

技成培訓
微信公眾號:jcpeixun
|

技成電工課堂
微信公眾號:jcdgkt
|

技成PLC課堂
微信公眾號:jc-plc
|