wlmissyou
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 62 個(gè)
工控威望: 165 點(diǎn)
下載積分: 1285 分
在線時(shí)間: 105(小時(shí))
注冊(cè)時(shí)間: 2017-06-11
最后登錄: 2024-12-22
查看wlmissyou的 主題 / 回貼
樓主  發(fā)表于: 2021-11-17 20:41
【S7-200 Smart開源標(biāo)準(zhǔn)化編程】之基礎(chǔ)----突破子程序的限制,讓子程序像FB一樣工作

就算看帖的小伙伴不考慮什么標(biāo)準(zhǔn)化編程,能突破子程序的一些限制也是好的。

先說說標(biāo)準(zhǔn)化程序的要求:對(duì)象化編程,程序中不使用M,T,C,子程序內(nèi)邏輯程序不可出現(xiàn)全局變量,更多的規(guī)則以后再說,先解決最基本問題。

我們首先看看200子程序有哪些限制:

1、最多128個(gè)子程序

這個(gè)限制是說你可以有128個(gè)子程序,不是調(diào)用限制,所以調(diào)用多少次都可以,受PLC資源限制。這個(gè)限制沒法破。

2、子程序只能有16個(gè)腳

為什么會(huì)有這個(gè)限制呢?臨時(shí)變量一共64個(gè)字節(jié),如果腳上都是最大的雙字?jǐn)?shù)據(jù)類型,64除以4等于16,所以就有了這個(gè)16腳限制。注意最后四個(gè)字節(jié)的臨時(shí)變量系統(tǒng)保留。咱也不知道干啥用了。那么這個(gè)限制如何破解呢,比如說把bool數(shù)據(jù)類型的變量整合成byte字節(jié)型的變量給子程序,比如連接的多個(gè)連續(xù)V區(qū)參數(shù)以指針的方式傳給子程序。

3、最多嵌套8層

這個(gè)沒啥說的,沒法破,但一般情況下夠用了。

[    post]4、帶有計(jì)數(shù)器和定時(shí)器的子程序無法多次調(diào)用

高速計(jì)數(shù)器未試驗(yàn)過,先排除。普通的計(jì)數(shù)器其實(shí)就是整數(shù)加,整數(shù)減,破解無壓力。定時(shí)器,我們用時(shí)間間隔定時(shí)器BGN_ITIME和CAL_ITIME指令實(shí)現(xiàn)毫秒級(jí)計(jì)時(shí),多次調(diào)用無問題,破解無壓力。

5、子程序內(nèi)不能使用沿指令

雖然不能使用沿使令,但是通過梯形圖邏輯可以產(chǎn)生沿信號(hào),使用不受限

6、置位,復(fù)位指令使用受限

這個(gè)破解沒問題。



更多的限制網(wǎng)友提一提,我們看看能不能破解。



200子程序多次調(diào)用總是出問題是因?yàn)槭裁吹哪兀?00的子程序運(yùn)行起來就是沒有靜態(tài)區(qū)的FC,問題就出在temp區(qū),因?yàn)閠emp不會(huì)保存啊,所以我們就要?jiǎng)澇鯲區(qū)來保存temp的數(shù)據(jù),像建立FB背影數(shù)據(jù)塊那樣。這部分背景數(shù)區(qū)上電時(shí)清零,子程序內(nèi)需要斷電保持的數(shù)據(jù)要記得用INOUT腳引出。工作起來也簡(jiǎn)單,進(jìn)入子程序后先將V區(qū)數(shù)據(jù)復(fù)制到temp,子程序邏輯運(yùn)行完,把temp里的數(shù)據(jù)復(fù)制回V區(qū)。有伙伴會(huì)說,這不是就是帶庫(kù)的子程序嘛,應(yīng)該是不同的。采用標(biāo)準(zhǔn)化方式的子程序必須全部無條件調(diào)用,就是每次掃描都得運(yùn)行。



這里給出簡(jiǎn)單的例程:

例程中有嵌套,有標(biāo)準(zhǔn)化定時(shí)器、標(biāo)準(zhǔn)化計(jì)數(shù)器,子程序多次調(diào)用,沿信號(hào)的生成和使用

加我微信進(jìn)群交流:50586625


smart200標(biāo)準(zhǔn)化實(shí)踐modbus20220522.smart.zip (102 K) 下载次数:1209   
[ 此帖被wlmissyou在2022-09-15 09:08重新編輯 ]
本帖最近評(píng)分記錄:
  • 下載積分:+1(y282574647) 厲害,不過看不懂
  • 下載積分:+1(hsiung) QR碼過期了
  • 下載積分:+1(完美世界)
    jiangzl725
    級(jí)別: 家園常客
    精華主題: 0
    發(fā)帖數(shù)量: 510 個(gè)
    工控威望: 567 點(diǎn)
    下載積分: 5411 分
    在線時(shí)間: 125(小時(shí))
    注冊(cè)時(shí)間: 2021-07-04
    最后登錄: 2024-12-22
    查看jiangzl725的 主題 / 回貼
    1樓  發(fā)表于: 2021-11-18 15:10
    土鱉電工
    級(jí)別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 431 個(gè)
    工控威望: 689 點(diǎn)
    下載積分: 781 分
    在線時(shí)間: 540(小時(shí))
    注冊(cè)時(shí)間: 2018-05-30
    最后登錄: 2024-10-30
    查看土鱉電工的 主題 / 回貼
    2樓  發(fā)表于: 2021-11-18 15:15
    如果200rmart支持FB就好了,子程序限制太多了
    eaglesence
    eaglesence
    級(jí)別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 388 個(gè)
    工控威望: 703 點(diǎn)
    下載積分: 20434 分
    在線時(shí)間: 91(小時(shí))
    注冊(cè)時(shí)間: 2019-04-02
    最后登錄: 2024-12-21
    查看eaglesence的 主題 / 回貼
    3樓  發(fā)表于: 2021-11-18 20:45
    西門子論壇搬運(yùn)的嗎?還是原作者?程序還是挺厲害的
    wlmissyou
    級(jí)別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 62 個(gè)
    工控威望: 165 點(diǎn)
    下載積分: 1285 分
    在線時(shí)間: 105(小時(shí))
    注冊(cè)時(shí)間: 2017-06-11
    最后登錄: 2024-12-22
    查看wlmissyou的 主題 / 回貼
    4樓  發(fā)表于: 2021-11-18 20:56
    引用
    引用第3樓eaglesence于2021-11-18 20:45發(fā)表的  :
    西門子論壇搬運(yùn)的嗎?還是原作者?程序還是挺厲害的

    必須是原作者啊
    本帖最近評(píng)分記錄:
  • 下載積分:+1(hsiung) 好貼好貼!
    zy028
    QQ1094553289
    級(jí)別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 106 個(gè)
    工控威望: 262 點(diǎn)
    下載積分: 409 分
    在線時(shí)間: 406(小時(shí))
    注冊(cè)時(shí)間: 2007-12-01
    最后登錄: 2024-12-21
    查看zy028的 主題 / 回貼
    5樓  發(fā)表于: 2021-11-24 19:56
    研究的很透徹啊,牛!
    zhenzi917
    級(jí)別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 1023 個(gè)
    工控威望: 3516 點(diǎn)
    下載積分: 430 分
    在線時(shí)間: 311(小時(shí))
    注冊(cè)時(shí)間: 2022-01-13
    最后登錄: 2024-12-22
    查看zhenzi917的 主題 / 回貼
    6樓  發(fā)表于: 2022-02-14 14:35
        
    命自我立
    lzzcym
    級(jí)別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 85 個(gè)
    工控威望: 204 點(diǎn)
    下載積分: 1031 分
    在線時(shí)間: 66(小時(shí))
    注冊(cè)時(shí)間: 2010-02-07
    最后登錄: 2024-12-20
    查看lzzcym的 主題 / 回貼
    7樓  發(fā)表于: 2022-07-03 22:30
    研究的很透徹啊,牛!
    王東旭
    級(jí)別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 80 個(gè)
    工控威望: 111 點(diǎn)
    下載積分: 730 分
    在線時(shí)間: 20(小時(shí))
    注冊(cè)時(shí)間: 2020-10-16
    最后登錄: 2024-08-15
    查看王東旭的 主題 / 回貼
    8樓  發(fā)表于: 2022-07-06 16:55
    能下載看看嗎
    chenchun
    級(jí)別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 155 個(gè)
    工控威望: 276 點(diǎn)
    下載積分: 4373 分
    在線時(shí)間: 424(小時(shí))
    注冊(cè)時(shí)間: 2009-07-24
    最后登錄: 2024-12-20
    查看chenchun的 主題 / 回貼
    9樓  發(fā)表于: 2022-08-22 22:09
    下載看看,OK.
    sjpuk
    級(jí)別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 20 個(gè)
    工控威望: 113 點(diǎn)
    下載積分: 451 分
    在線時(shí)間: 33(小時(shí))
    注冊(cè)時(shí)間: 2010-08-05
    最后登錄: 2024-11-10
    查看sjpuk的 主題 / 回貼
    10樓  發(fā)表于: 2022-09-09 16:39
    這個(gè)得支持一下!
    ldf710613
    級(jí)別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 367 個(gè)
    工控威望: 1154 點(diǎn)
    下載積分: 1301 分
    在線時(shí)間: 31(小時(shí))
    注冊(cè)時(shí)間: 2022-04-09
    最后登錄: 2023-12-18
    查看ldf710613的 主題 / 回貼
    11樓  發(fā)表于: 2022-09-09 16:44
    感謝分享