吴忠躺衫网络科技有限公司

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

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

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

FC對(duì)輸出的錯(cuò)誤處理

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 作者:微笑應(yīng)對(duì) ? 2022-11-09 16:51 ? 次閱讀

對(duì)于 FC的使用,另一個(gè)的常見的錯(cuò)誤是對(duì)輸出的錯(cuò)誤處理:導(dǎo)致這個(gè)錯(cuò)誤的原因還是對(duì)FC認(rèn)識(shí)的不清楚。

再次強(qiáng)調(diào):相比較于 FB,FC是一個(gè)沒有存儲(chǔ)空間的邏輯塊。

如果沒有數(shù)據(jù)被寫至 FC 的 OUT參數(shù),F(xiàn)C將會(huì)輸出一個(gè)隨機(jī)值!對(duì)于 FB, 因?yàn)槠淇梢允褂帽尘皵?shù)據(jù)塊來存儲(chǔ) OUT參數(shù)的數(shù)值,即使某次調(diào)用沒有對(duì) OUT參數(shù)進(jìn)行寫操作,OUT參數(shù)依然可以輸出上一次的舊值。

下面的程序?qū)⒄f明這一點(diǎn):程序原本目的:

在 OB1中調(diào)兩次 FC22,將 MW0,MW2作為輸入?yún)?shù),DB1.DBX0.0,DB1.DBX0.1分別作為輸出參數(shù)賦給 FC22

FC22檢測當(dāng)輸入大于 10時(shí),置位輸出為 1FC22檢測當(dāng)輸入小于-10時(shí),復(fù)位輸出為 0 FC22的輸出的動(dòng)作死區(qū)為-10至 10

此程序乍看是沒有錯(cuò)誤的,但是,如果 OB1中調(diào)用了兩次 FC22,而且 MW2位于死區(qū)(-10 至10)之間時(shí),MW0的數(shù)值改變將不僅僅改變 DB1.DBX0.0的狀態(tài),同時(shí)會(huì)影響輸出 DB1.DBX0.1的數(shù)值。

7c4a9650-6008-11ed-8abf-dac502259ad0.png

故障分析:在上面的例子,OB1中調(diào)用了兩次 FC22,而且 MW2位于死區(qū)(-10至 10)之間時(shí),其輸出在FC22沒有被賦值,DB1.DBX0.1正常情況下不應(yīng)當(dāng)改變數(shù)值。

本例中,MW0的數(shù)值改變將不僅僅改變DB1.DBX0.0的狀態(tài),同時(shí)會(huì)影響輸出 DB1.DBX0.1的數(shù)值。如下圖。

7c73804c-6008-11ed-8abf-dac502259ad0.png

對(duì)于 FC的輸出變量,必須要在每次執(zhí)行 FC時(shí)賦給一個(gè)確定的值,否則輸出有可能會(huì)輸出一個(gè)隨機(jī)值。下列用法都是錯(cuò)誤的:

將輸出變量用于上升/下降沿指令

將輸出變量用于自保持邏輯

輸出變量未在所在程序段中賦值

警告:不要因?yàn)樵?FC編程中遇到?jīng)]有對(duì)輸出賦值,而程序執(zhí)行正確,就忽略了對(duì) FC輸出編程的注意事項(xiàng),否則將承擔(dān)這個(gè)錯(cuò)誤有可能帶來的風(fēng)險(xiǎn)。

建議:

用 IN/OUT 變量代替 OUTPUT 變量

不論何時(shí)調(diào)用塊,F(xiàn)C中的OUT參數(shù)都必須被賦值。




審核編輯:劉清

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

    關(guān)注

    0

    文章

    8

    瀏覽量

    6272

原文標(biāo)題:FC 輸出處理

文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式編程錯(cuò)誤處理機(jī)制設(shè)計(jì)

    本文主要總結(jié)嵌入式系統(tǒng)C語言編程中,主要的錯(cuò)誤處理方式。文中涉及的代碼運(yùn)行環(huán)境如下。
    發(fā)表于 04-28 09:59 ?794次閱讀
    嵌入式編程<b class='flag-5'>錯(cuò)誤處理</b>機(jī)制設(shè)計(jì)

    嵌入式系統(tǒng)C語言編程中主要的錯(cuò)誤處理方式

    本文主要總結(jié)嵌入式系統(tǒng)C語言編程中,主要的錯(cuò)誤處理方式。
    發(fā)表于 07-24 16:40 ?989次閱讀
    嵌入式系統(tǒng)C語言編程中主要的<b class='flag-5'>錯(cuò)誤處理</b>方式

    Rust語言中錯(cuò)誤處理的機(jī)制

    在Rust語言中,錯(cuò)誤處理是一項(xiàng)非常重要的任務(wù)。由于Rust語言采用靜態(tài)類型檢查,在編譯時(shí)就能發(fā)現(xiàn)很多潛在的錯(cuò)誤,這使得程序員能夠更加自信和高效地開發(fā)程序。然而,即使我們?cè)诰幾g時(shí)盡可能地考慮了所有
    的頭像 發(fā)表于 09-19 14:54 ?1502次閱讀

    嵌入式C編程常用的異常錯(cuò)誤處理

    信息記錄到非易失性存儲(chǔ)器或通過串口輸出。 總結(jié) 嵌入式C編程中的異常錯(cuò)誤處理方法多種多樣,選擇合適的方法取決于具體的應(yīng)用場景和系統(tǒng)要求。通過合理的錯(cuò)誤處理機(jī)制,可以提高系統(tǒng)的穩(wěn)定性和可靠性。
    發(fā)表于 08-06 14:32

    labviEW錯(cuò)誤處理的問題

    為什么這個(gè)程序在啟用自動(dòng)錯(cuò)誤處理和C:\data.txt不存在的情況下,沒有顯示錯(cuò)誤對(duì)話框啊?
    發(fā)表于 04-01 10:03

    LabVIEW錯(cuò)誤處理問題

    我想問一下,就是連接硬件采集波形時(shí),需要濾掉直流波,但是采集到的波形時(shí)斷斷續(xù)續(xù)的,所以錯(cuò)誤處理時(shí)會(huì)停止程序,我想問一下,運(yùn)行時(shí)怎么忽略掉這個(gè)錯(cuò)誤
    發(fā)表于 09-18 18:29

    AF錯(cuò)誤處理

    想問一下關(guān)于AF的錯(cuò)誤處理,例如我進(jìn)行串口通訊,打開串口錯(cuò)誤,但是我不想停止AF,想繼續(xù)嘗試連接要怎么做?
    發(fā)表于 02-03 15:44

    LabVIEW中的錯(cuò)誤處理

    如何合理使用 LabVIEW 中的自定義錯(cuò)誤處理功能;對(duì)于可預(yù)見的錯(cuò)誤,是否可以選擇直 接忽略,或者前幾次嘗試忽略直到該特定錯(cuò)誤出現(xiàn)很多次后才通知用戶需要糾正該錯(cuò)誤 了;是否可以對(duì)
    發(fā)表于 05-24 11:07 ?6次下載

    Spring Boot框架錯(cuò)誤處理

    》 《strong》翻譯《/strong》:雁驚寒《/p》 《/blockquote》《p》《em》摘要:本文通過實(shí)例介紹了使用Spring Boot在設(shè)計(jì)API的時(shí)候如何正確地對(duì)異常進(jìn)行處理。以下是譯文《/em》《/p》《p》API在提供錯(cuò)誤消息的同時(shí)進(jìn)行適當(dāng)?shù)?/div>
    發(fā)表于 09-28 15:31 ?0次下載

    嵌入式系統(tǒng)C語言編程中的錯(cuò)誤處理資料總結(jié)

    本文主要總結(jié)嵌入式系統(tǒng)C語言編程中,主要的錯(cuò)誤處理方式。文中涉及的代碼運(yùn)行環(huán)境如下:
    發(fā)表于 11-28 10:39 ?1959次閱讀

    Rust代碼啟發(fā)之返回值異常錯(cuò)誤處理

    這樣的代碼,錯(cuò)誤處理代碼和業(yè)務(wù)邏輯交織在一起,也容易忽略處理錯(cuò)誤。以及把返回值只用于錯(cuò)誤返回,有點(diǎn)浪費(fèi)的感覺。因?yàn)楹芏鄷r(shí)候把計(jì)算結(jié)果作為返回值,更符合思考的邏輯。
    的頭像 發(fā)表于 09-22 09:24 ?2218次閱讀
    Rust代碼啟發(fā)之返回值異常<b class='flag-5'>錯(cuò)誤處理</b>

    RS232通信時(shí)怎么處理錯(cuò)誤?RS232通信中的錯(cuò)誤處理方法

    RS232通信時(shí)怎么處理錯(cuò)誤?RS232通信中的錯(cuò)誤處理方法? RS232通信是一種電氣標(biāo)準(zhǔn),它定義了計(jì)算機(jī)和串行通信設(shè)備之間的通信協(xié)議。盡管RS232通信很穩(wěn)定,但仍然可能會(huì)出現(xiàn)錯(cuò)誤
    的頭像 發(fā)表于 10-17 16:33 ?3143次閱讀

    西門子博圖:錯(cuò)誤處理機(jī)制概覽

    可通過以下幾種不同的錯(cuò)誤處理機(jī)制進(jìn)行參數(shù)跟蹤或編程或訪問錯(cuò)誤
    的頭像 發(fā)表于 11-25 11:35 ?3052次閱讀
    西門子博圖:<b class='flag-5'>錯(cuò)誤處理</b>機(jī)制概覽

    C語言中的錯(cuò)誤處理機(jī)制解析

    C 語言不提供對(duì)錯(cuò)誤處理的直接支持,但是作為一種系統(tǒng)編程語言,它以返回值的形式允許您訪問底層數(shù)據(jù)。
    的頭像 發(fā)表于 02-26 11:19 ?564次閱讀

    socket編程中的錯(cuò)誤處理技巧

    Socket編程是網(wǎng)絡(luò)編程的基礎(chǔ),它允許程序之間通過TCP/IP協(xié)議進(jìn)行通信。然而,網(wǎng)絡(luò)通信是不穩(wěn)定的,可能會(huì)遇到各種問題,如網(wǎng)絡(luò)延遲、連接中斷、數(shù)據(jù)丟失等。 錯(cuò)誤處理的重要性 提高程序的健壯性
    的頭像 發(fā)表于 11-01 17:47 ?948次閱讀
    百家乐官网天天赢钱| 五常市| 真人游戏机| 明升百家乐QQ群| 任你博百家乐官网的玩法技巧和规则 | 百家乐官网专业术语| 百家乐官网下注的规律| 豪门国际娱乐网| 大发888娱乐场888| 千亿百家乐的玩法技巧和规则 | 大上海百家乐官网娱乐城| 凯旋门百家乐官网游戏| 霍城县| 亚洲顶级赌场手机版| 威尼斯人娱乐场xpjgw5xsjgw | 百家乐游戏运营| 老虎百家乐官网的玩法技巧和规则| 百家乐官网投注平台导航网| 百家乐官网起步多少| 爱博娱乐| 大发888 df登录| 大发888出纳柜台 在线| 免费百家乐计划软件| 百家乐投注网址| 真人百家乐开户须知| 百家乐庄闲的概率| 格龙24山五行| 真人百家乐官网最高赌注| 赌百家乐官网的玩法技巧和规则 | 赌博百家乐官网技术| 百家乐官网娱乐城有几家| 百家乐官网真钱电玩| 涪陵区| 林周县| 线上真人游戏| 王牌国际| 优博网站| 中信娱乐城| 在线赌场| 天等县| 灵丘县|