通过电脑给继电器发送指令_三菱FX PLC学习之通信指令(上)
點擊上方藍字關注我們
【免費抽獎】電氣人不能錯過的PLC書籍與軟件!
通信指令本身不難,難的是對通信的理解。在學習PLC通信指令之前,我曾嘗試去看通信相關的課程,然后告訴自己:算了,不必勉強自己,學不會的始終學不會。
數據的傳輸方式有并行和串行兩種,其中并行是指同一時刻可以傳輸多個bit位的信號,有多少個信號位就需要多少根信號線;而串是指同一時刻只能傳輸一個bit位的信號,只需要一根信號線,如下圖所示。PLC與其他設備的通信就是以串行的方式進行的。
所以文章所謂的通信指令是基于串行的傳輸方式,這次先分享串行數據傳送指令RS與校驗碼指令CCD,下次接著分享十六進制字符轉ASCII碼的交換指令ASCI與ASCII碼轉十六進制字符的交換指令HEX。
01數據傳送指令RS?
RS指令是PLC與外圍設備進行數據傳輸的控制指令,從編程手冊截圖可以看到,RS指令不可用于32位,也沒有脈沖執行型,它有4個操作數,源址 S· 和和終址 D· 只能是數據寄存器D,還有兩個操作數n、m可以是常數K、H和寄存器D。RS指令的梯形圖形式圖下圖所示。
源址S是所發送數據的字元件首址,D是需接收數據的字元件首址;而m是發送數據的個數,n是接收數據的個數,其中n、m的取值范圍為0~4096且n+m≤8000。這里要注意的數是,S和D不能使用相同編號的數據寄存器,但m和n可以使用同一數據寄存器。在驅動條件成立時,RS指令告訴PLC做好準備,接下來將要發送m個以S為首址的數據,并接收n個以D為首址的數據。
例上圖所示的執行指令RS D0 K5 D100 K10?,X0置ON,寄存器D0~D5的開始做好發送數據的準備,而D100~D110也開始做好接收數據的準備。即RS指令執行時,數據并沒有馬上開始傳輸,而是處于待命狀態。
RS指令的應用,會涉及到幾個特殊軟元件,即下圖所示的D8120、M8161、M8122、M8123。所謂通信格式字,簡單來說就是PLC與外圍設備進行數據傳輸時所約定的數據格式,例如數據傳輸怎么開始、如何結束、波特率為多少(每秒傳輸bit位的個數)等。
所以,在應用RS指令進行通信前,應先確定通信格式字。這有點像打籃球,比賽時跟隊友溝通用手勢進行,什么手勢進攻、什么手勢擋拆、什么手勢用什么戰術等,這都得事先約定。
M8161的不同狀態決定了RS指令對數據的處理方式:低8位模式或16位模式。所謂低8位,是指RS指令只對源址S和終址D的低8位數據進行傳送和接收,而忽略高8位的數據。同理,所謂16位模式是指RS指令對源址S和終址D的16位數據均做發送和接收處理。例如PLC要發送數據:H01、H23、HAB、HCD,接收數據:H45、H67、H89。
(1)若M8161=ON,如下圖所示,每個數據寄存器只有低8位用于保存所需的數據,而高8位為零,不做處理。
(2)若M8161=OFF,如下圖所示,每個數據寄存器共有16位,均用于存放數據,與低8位模式相比,少用了一半的數據寄存器。具體用什么模式根據實際情況而定,一般是采用低8位的數據處理模式。
由M8161的功能和用途可以發現除RS指令外,CCD、ASCI、HEX指令對數據的處理模式也是由M8161的狀態控制。也就是說,程序中,一旦M8161的狀態被設定,RS、CCD、ASCI、HEX指令對數據的處理模式均相同。
特殊繼電器M8122和M8123是數據發送或接受的標志繼電器,它們的狀態直接決定了數據是否傳輸。若把數據傳輸看成賽跑,則執行RS指令就相當于裁判喊:“預備!”,此時各選手做好蹲踞;M8122置ON,相當于裁判喊:“跑!”,選手們開始跑步,即數據開始傳送,M8123也是類似的道理。
下圖為RS指令應用的梯形圖示例,在數據發送和接收之前,先確定好數據處理模式和寫入通信格式字,如圖中的H0C87為一種通信格式字。
將所需發送的數據先保存到D0~D9,然后將M8122置ON,開始發送數據,數據發送完畢后,繼續接收數據并相繼保存到PLC的D100~D109中,數據接收完畢后,M8123自動置ON,此時PLC將D100~D109所存的數據轉存到D300~D309中,最后將M8123復位,為下一次數據接收作準備。
數據傳送指令RS的理解并不簡單,畢竟是通信,說到通信,我流了一地的辛酸淚。RS指令在平時用得不少,希望大家認真學習哦。
02校驗碼指令CCD所謂校驗,簡單來說,就是判斷數據傳送時所傳送的數據的正確性。而校驗碼就是校驗的結果,不同的校驗方式有著不同的校驗結果。校驗碼指令CCD就是針對求和校驗和異或校驗而設計的,其編程手冊截圖如下圖所示。
所謂求和校驗,是指將參與校驗的數據求和,將求和結果的低8位作為校驗碼。例如求數據H12、H23、H34、H45、H56的求和校驗碼,直接將這幾個數據相加等于H104,取低8位為H04就是其求和校驗碼。
同理,異或校驗,就是將參與校驗的數據依次按位進行異或運算,最終結果即為異或校驗碼(列偶校驗碼)。如下圖所示,求數據H12、H23、H34、H45、H56進行異或檢驗,先將H12與H23按位異或,結果為H31,然后將H31與H34按位異或……最終結果為H16,即異或檢驗碼為H16。
從編程手冊截圖可得,CCD指令不可用于32位,有脈沖執行型和連續執行型兩種,操作數有3個。其梯形圖形式如下圖所示,源址S為參與校驗的數據存儲字元件首址;終址D為求和校驗碼存儲字元件地址,其D+1為存儲列偶檢驗碼的地址;n為參與校驗數據的個數,取值范圍為0~256。
當驅動條件成立時,對S所存的數據分別求解其求和校驗碼和列偶校驗碼,并存到終址D和D+1中。例如執行指令CCD D0 D100 K10,對D0~D9的數據求解其求和校驗碼和列偶校驗碼,并將求和校驗碼存到D100中,將列偶校驗碼存到D101中。
在上文中提到,特殊繼電器M8161的狀態也決定了CCD指令的數據處理模式。若M8161=ON,CCD指令為8位數據處理模式時,僅對首址為S的n個數據寄存器的低8位數據進行求和、異或,而為16位數據處理模式時,將首址為S的n個數據寄存器的高8位、低8位看成兩部分,分別進行求和、異或。
例如執行指令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課時
(技成培訓原創,作者:楊思慧,未經授權不得轉載,違者必究!)
RECOMMEND延伸閱讀小白如何學PLC?我的三菱FX PLC學習之數字電路基礎學習計劃丨西門子PLC從入門到精通學習計劃丨三菱PLC從入門到精通三菱PLC與西門子所有PLC的學習方法,初學者必備點擊“”立即領取128G學習包!總結
以上是生活随笔為你收集整理的通过电脑给继电器发送指令_三菱FX PLC学习之通信指令(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java反编译工具_漫话:如何给女朋友解
- 下一篇: windows启动管理器_win7系统任