91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

狀態(tài)機(jī)如何簡(jiǎn)化PLC程序的編寫(xiě)

h1654155282.3538 ? 來(lái)源:自動(dòng)化工程師的日常 ? 作者:自動(dòng)化工程師的日 ? 2020-09-10 14:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

PLC程序的編寫(xiě)過(guò)程中,可以使用狀態(tài)機(jī)的控制思路,將一些復(fù)雜的控制過(guò)程使用狀態(tài)機(jī)的方法處理。這里簡(jiǎn)單給大家介紹一下什么是狀態(tài)機(jī)?如下圖所示,為一個(gè)狀態(tài)機(jī)的狀態(tài)圖。

從以上圖中可以看到,其是將動(dòng)作執(zhí)行的各個(gè)狀態(tài)進(jìn)行了一個(gè)劃分、規(guī)劃。動(dòng)作程序的執(zhí)行就是使程序在不同的條件下進(jìn)行各個(gè)狀態(tài)之間的轉(zhuǎn)換。

以上這些都比較抽象,初次接觸的話(huà)不是特別能讓人理解,接下來(lái)我們看一下一個(gè)程序功能如何拆分為狀態(tài)機(jī)的單個(gè)狀態(tài)。

如何拆分設(shè)計(jì)狀態(tài)機(jī)的狀態(tài)

狀態(tài)的選擇

一般將程序執(zhí)行過(guò)程中,會(huì)存在停留、保持、等待等過(guò)程。在設(shè)計(jì)狀態(tài)的時(shí)候,就可以將狀態(tài)的最小單位設(shè)計(jì)為這些過(guò)程。例如,1、控制氣缸伸出/收回,這就可以選做狀態(tài)機(jī)的一個(gè)狀態(tài);2、設(shè)備停止,等待接收命令,這也應(yīng)該是一個(gè)狀態(tài);3、啟動(dòng)電機(jī)運(yùn)行,電機(jī)運(yùn)行到停止這也應(yīng)該是一個(gè)狀態(tài);

總的來(lái)說(shuō),在選擇狀態(tài)的時(shí)候,狀態(tài)在程序的時(shí)序結(jié)構(gòu)上,在時(shí)間單位上應(yīng)該是一個(gè)“保持”的狀態(tài)。

狀態(tài)之間的轉(zhuǎn)換

狀態(tài)轉(zhuǎn)換一定是要某種條件的。即狀態(tài)在處于保持的過(guò)程中,檢測(cè)到條件滿(mǎn)足,就進(jìn)行狀態(tài)間的轉(zhuǎn)換。例如,氣缸伸出/收回這個(gè)狀態(tài),在氣缸動(dòng)作的過(guò)程中,其缸動(dòng)作到位傳感器檢測(cè)到到位信號(hào),則程序就應(yīng)該轉(zhuǎn)換到下一個(gè)狀態(tài)。下一個(gè)狀態(tài)可以是另一個(gè)氣缸的動(dòng)作、也可以是等待延時(shí)、還可以是其他設(shè)備流程上的步驟。

狀態(tài)機(jī)實(shí)現(xiàn)流程控制方法

舉例1

這里以機(jī)械手物料取放機(jī)構(gòu)為例給大家分享。這個(gè)是我以前給大家分享的一篇文章PLC編程示例-機(jī)械手物料取放。在這篇文章中,我以類(lèi)似于“流水線(xiàn)”的方式給大家分享如何處理這類(lèi)流程控制邏輯。

這種方式簡(jiǎn)單方便,編寫(xiě)程序的時(shí)候就依照動(dòng)作的流程順序執(zhí)行下去就可以。但是如果設(shè)備的動(dòng)作比較復(fù)雜,就可能會(huì)將這個(gè)“流水線(xiàn)”設(shè)計(jì)得非常得長(zhǎng)。這當(dāng)然不是一個(gè)優(yōu)質(zhì)的程序結(jié)構(gòu)。但是如果使用狀態(tài)機(jī)的方式來(lái)處理,就可以將程序簡(jiǎn)化許多。且程序的代碼質(zhì)量也會(huì)提高不少。

舉例2

串口自定義協(xié)議實(shí)現(xiàn)過(guò)程。在處理串口通信的過(guò)程中,在進(jìn)行數(shù)據(jù)傳輸?shù)倪^(guò)程中一般都會(huì)有幾個(gè)動(dòng)作,如串口狀態(tài)查詢(xún)、串口空閑查詢(xún)、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、異常檢測(cè)、異常處理。

同樣的,將串口通信的過(guò)程均使用狀態(tài)機(jī)的方式來(lái)進(jìn)行處理,可以極大的簡(jiǎn)化程序的結(jié)構(gòu)。尤其在通信過(guò)程為動(dòng)態(tài)變化的情況下,如某一時(shí)刻,僅需要數(shù)據(jù)發(fā)送流程;某一時(shí)刻,僅需要數(shù)據(jù)接收;某一時(shí)間既要發(fā)送又要接收;在處理此類(lèi)流程復(fù)雜的過(guò)程時(shí),選用狀態(tài)機(jī)的方式可以靈活的適用在各種變化的通信過(guò)程。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    499

    瀏覽量

    29132
  • PLC程序
    +關(guān)注

    關(guān)注

    4

    文章

    72

    瀏覽量

    11796
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32按鍵狀態(tài)機(jī)2——狀態(tài)簡(jiǎn)化與增加長(zhǎng)按功能

    本篇繼續(xù)介紹狀態(tài)機(jī)的使用,在上篇的基礎(chǔ)上,通過(guò)簡(jiǎn)化按鍵去抖邏輯,并增加按鍵長(zhǎng)按功能,進(jìn)一步介紹狀態(tài)圖的修改與狀態(tài)機(jī)代碼的實(shí)現(xiàn),并通過(guò)實(shí)際測(cè)試,演示
    的頭像 發(fā)表于 09-03 21:26 ?5417次閱讀
    STM32按鍵<b class='flag-5'>狀態(tài)機(jī)</b>2——<b class='flag-5'>狀態(tài)</b><b class='flag-5'>簡(jiǎn)化</b>與增加長(zhǎng)按功能

    為什么PIC32的Harmony編寫(xiě)沒(méi)有交互的狀態(tài)機(jī)?

    重新定義,但是基于和聲方法,這些狀態(tài)機(jī)也基于中斷在不同的文件中從一個(gè)狀態(tài)移動(dòng)到另一個(gè)狀態(tài)。這個(gè)應(yīng)用程序運(yùn)行良好,但我詢(xún)問(wèn)您的意見(jiàn),如果這種方法是正確的或可以改進(jìn)的,或者如果您有任何SU
    發(fā)表于 08-12 08:36

    采用狀態(tài)機(jī)和消息機(jī)制的串口接收程序

    采用狀態(tài)機(jī)和消息機(jī)制的串口接收程序
    發(fā)表于 05-16 14:51 ?48次下載

    狀態(tài)機(jī)思路在單片機(jī)程序設(shè)計(jì)中的應(yīng)用

    狀態(tài)機(jī)思路在單片機(jī)程序設(shè)計(jì)中的應(yīng)用 狀態(tài)機(jī)的概念       狀態(tài)機(jī)是軟件編程中的一個(gè)
    發(fā)表于 03-18 15:00 ?1545次閱讀
    <b class='flag-5'>狀態(tài)機(jī)</b>思路在單片<b class='flag-5'>機(jī)</b><b class='flag-5'>程序</b>設(shè)計(jì)中的應(yīng)用

    狀態(tài)機(jī)舉例

    狀態(tài)機(jī)舉例 你可以指定狀態(tài)寄存器和狀態(tài)機(jī)狀態(tài)。以下是一個(gè)有四種狀態(tài)的普通狀態(tài)機(jī)。 // Th
    發(fā)表于 03-28 15:18 ?1197次閱讀

    狀態(tài)機(jī)原理及用法

    狀態(tài)機(jī)原理及用法狀態(tài)機(jī)原理及用法狀態(tài)機(jī)原理及用法
    發(fā)表于 03-15 15:25 ?0次下載

    有限狀態(tài)機(jī)在嵌入式系統(tǒng)中的實(shí)現(xiàn)及應(yīng)用

    如何使嵌入式軟件代碼更加可靠 增強(qiáng)程序的可維護(hù)性 一直以來(lái)都是嵌入式程序員追 求的目標(biāo)。論述了有限狀態(tài)機(jī)的原理和其實(shí)現(xiàn)方法;采用狀態(tài)機(jī)方法編寫(xiě)
    發(fā)表于 03-22 15:40 ?1次下載

    狀態(tài)機(jī)VHDL程序

    狀態(tài)機(jī)VHDL程序,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-11 15:51 ?5次下載

    簡(jiǎn)述如何使用Harmony的動(dòng)態(tài)驅(qū)動(dòng)和狀態(tài)機(jī)來(lái)編寫(xiě)程序

    本篇就來(lái)介紹一下如何使用Harmony的動(dòng)態(tài)驅(qū)動(dòng)和狀態(tài)機(jī)來(lái)編寫(xiě)程序。其實(shí)狀態(tài)機(jī)是挺簡(jiǎn)單的,就是事先定義好可能發(fā)生的哪些狀態(tài),然后主循環(huán)里根據(jù)不同的
    的頭像 發(fā)表于 02-01 03:33 ?4516次閱讀
    簡(jiǎn)述如何使用Harmony的動(dòng)態(tài)驅(qū)動(dòng)和<b class='flag-5'>狀態(tài)機(jī)</b>來(lái)<b class='flag-5'>編寫(xiě)程序</b>

    如何對(duì)狀態(tài)機(jī)程序進(jìn)行靈活修改

    狀態(tài)機(jī)最主要的特點(diǎn)就是靈活性,這個(gè)優(yōu)勢(shì)在程序后期的維護(hù)上更會(huì)顯示出來(lái),本集中工程師將展現(xiàn)出狀態(tài)機(jī)是如何輕松對(duì)程序進(jìn)行靈活修改,從而滿(mǎn)足日益復(fù)雜的開(kāi)發(fā)要求。
    的頭像 發(fā)表于 06-14 03:19 ?3767次閱讀
    如何對(duì)<b class='flag-5'>狀態(tài)機(jī)</b>的<b class='flag-5'>程序</b>進(jìn)行靈活修改

    狀態(tài)機(jī)概述 如何理解狀態(tài)機(jī)

    本篇文章包括狀態(tài)機(jī)的基本概述以及通過(guò)簡(jiǎn)單的實(shí)例理解狀態(tài)機(jī)
    的頭像 發(fā)表于 01-02 18:03 ?1.1w次閱讀
    <b class='flag-5'>狀態(tài)機(jī)</b>概述  如何理解<b class='flag-5'>狀態(tài)機(jī)</b>

    FPGA:狀態(tài)機(jī)簡(jiǎn)述

    本文目錄 前言 狀態(tài)機(jī)簡(jiǎn)介 狀態(tài)機(jī)分類(lèi) Mealy 型狀態(tài)機(jī) Moore 型狀態(tài)機(jī) 狀態(tài)機(jī)描述 一段式
    的頭像 發(fā)表于 11-05 17:58 ?8839次閱讀
    FPGA:<b class='flag-5'>狀態(tài)機(jī)</b>簡(jiǎn)述

    狀態(tài)模式(狀態(tài)機(jī))

    share,作者:亞索老哥)),原來(lái)狀態(tài)機(jī)還可以這么簡(jiǎn)單地玩~~亞索老哥提出的狀態(tài)機(jī)六步法(1)、定義狀態(tài)接口(2)、定義系統(tǒng)當(dāng)前狀態(tài)指針(3)、定義具體
    發(fā)表于 12-16 16:53 ?9次下載
    <b class='flag-5'>狀態(tài)</b>模式(<b class='flag-5'>狀態(tài)機(jī)</b>)

    分享一款狀態(tài)機(jī)自動(dòng)生成工具

    為實(shí)用的軟件系統(tǒng)編寫(xiě)狀態(tài)機(jī)并不是一件十分輕松的事情,特別是當(dāng)狀態(tài)機(jī)本身比較復(fù)雜的時(shí)候尤其如此,許多有過(guò)類(lèi)似經(jīng)歷的程序員往往將其形容為"毫無(wú)創(chuàng)意"的過(guò)程,因?yàn)樗麄冃枰獙⒋罅康臅r(shí)間與精力傾
    的頭像 發(fā)表于 07-31 10:24 ?5168次閱讀
    分享一款<b class='flag-5'>狀態(tài)機(jī)</b>自動(dòng)生成工具

    什么是狀態(tài)機(jī)?狀態(tài)機(jī)的種類(lèi)與實(shí)現(xiàn)

    狀態(tài)機(jī),又稱(chēng)有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)或米利狀態(tài)機(jī)(Mealy Machine),是一種描述系統(tǒng)狀態(tài)變化的模型。在芯片設(shè)計(jì)中,
    的頭像 發(fā)表于 10-19 10:27 ?1.3w次閱讀