找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 15828|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

分享一個(gè)通過梯形圖產(chǎn)生C語言代碼的工具

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
分享一個(gè)通過梯形圖產(chǎn)生C代碼的工具,適用于各種MCU,有拿單片機(jī)做PLC可以用一下。梯形圖導(dǎo)入后,將生成的.c.h文件包含進(jìn)去,在MCU的主循環(huán)中把輸入輸出都映射好就可以工作。下面是應(yīng)用到STC90c516rd+的例子,附件包含代碼。注意:mcu至少有0.5K 的RAM才能運(yùn)行這段代碼(89c52不行)。


單片機(jī)源程序如下:
  1. #include "stc89c5xrc.h"
  2. #include "plc.h"


  3. extern void PLC_TimerISR(void);
  4. void GetInput(void)
  5. {
  6.        // I0.0
  7.        P26 = 1;
  8.        PLC_BS(PLC_I[0], 0, !(P26));

  9.        // I0.1
  10.        P27 = 1;
  11.        PLC_BS(PLC_I[0], 1, !(P27));

  12.        // I1.0
  13.        P22 = 1;
  14.        PLC_BS(PLC_I[1], 0, !(P22));

  15.        // I1.1
  16.        P23 = 1;
  17.        PLC_BS(PLC_I[1], 1, !(P23));

  18.        // I1.2
  19.        P24 = 1;
  20.        PLC_BS(PLC_I[1], 2, !(P24));
  21. }

  22. void SetOutput(void)
  23. {
  24.        // Q0.0
  25.        if(PLC_Q[0] & PLC_BV(0))
  26.            P00 = 0;
  27.        else
  28.            P00 = 1;

  29.        // Q1.0
  30.        if(PLC_Q[1] & PLC_BV(0))
  31.        {
  32.            P02 = 0;
  33.            P03 = 0;
  34.            P04 = 0;
  35.        }
  36.        else
  37.        {
  38.            P02 = 1;
  39.            P03 = 1;
  40.            P04 = 1;
  41.        }

  42.        // Q1.1
  43.        if(PLC_Q[1] & PLC_BV(1))
  44.        {
  45.            P05 = 0;
  46.            P06 = 0;
  47.            P07 = 0;
  48.        }
  49.        else
  50.        {
  51.            P05 = 1;
  52.            P06 = 1;
  53.            P07 = 1;
  54.        }

  55.        // Q1.2
  56.        if(PLC_Q[1] & PLC_BV(2))
  57.             P01 = 0;
  58.        else
  59.             P01 = 1;        
  60. }

  61. void main(void)
  62. {
  63.     AUXR |= 0x80;        //定時(shí)器時(shí)鐘1T模式
  64.     TMOD &= 0xF0;        //設(shè)置定時(shí)器模式
  65.     TMOD |= 0x01;        //設(shè)置定時(shí)器模式
  66.     TL0 = 0x20;        //設(shè)置定時(shí)初值
  67.     TH0 = 0xD1;        //設(shè)置定時(shí)初值
  68.     TF0 = 0;        //清除TF0標(biāo)志
  69.     TR0 = 1;        //定時(shí)器0開始計(jì)時(shí)
  70.     ET0 = 1;
  71.     EA = 1;

  72.     PLC_InitK();
  73.    while (1)
  74.    {
  75.        GetInput();
  76.        PLC_TimerScanCheck();
  77.        PLC_INT0(); // The PLC main loop!
  78.        SetOutput();
  79.    }
  80. }

  81. void ISR_TIMER0(void) interrupt 1  using 0
  82. {
  83.     TL0 = 0x20;        //設(shè)置定時(shí)初值
  84.     TH0 = 0xD1;        //設(shè)置定時(shí)初值
  85.        PLC_TimerISR();
  86. }

復(fù)制代碼
梯形圖to C語言編譯工具+示例代碼


下載地址:已刪除
由于本站不允許上傳exe文件,大家可以去百度搜索下載GUTTA Ladder To C軟件

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏28 分享淘帖 頂3 踩
回復(fù)

使用道具 舉報(bào)

來自 2#
ID:115923 發(fā)表于 2021-10-21 14:24 | 只看該作者
免安裝  ,  這點(diǎn)不錯(cuò), ,

先打開 PLC編程軟件,   
可以導(dǎo)入 三菱的PWM格式梯形圖程序
也可以 自己編輯梯形圖程序
然后 點(diǎn)菜單的PLC里面 全部編譯, 如果沒有出錯(cuò), 會(huì)有下圖 出現(xiàn),  

按照 順序 1, 2, 3,4 步驟,
1.  檢查編譯有沒有錯(cuò),  
2.  找到轉(zhuǎn)換的C窗口
3.  點(diǎn)擊 下面的source欄
4.  找到 PLC_INT0   ,  開始從這里開始到結(jié)束 拷貝.

然后打開 實(shí)例代碼, 文件夾里的 plc.uvproj  --- 這個(gè)要安裝Keil uv4軟件
實(shí)例代碼缺少  stc89c5xrc.h  我已經(jīng)補(bǔ)全了, 在文件夾里.
然后在  PLC.c的里面, 找到最后的一個(gè)函數(shù) void PLC_INT0(void)
把剛才拷貝的替換換掉 這里面的內(nèi)容.
編譯一下, 下載到MCU 即可 .

stc89c5xrc.h文件:
http://www.torrancerestoration.com/bbs/dpj-90949-1.html
http://www.torrancerestoration.com/bbs/dpj-36974-1.html


回復(fù)

使用道具 舉報(bào)

板凳
ID:527324 發(fā)表于 2019-5-5 00:23 來自手機(jī) | 只看該作者
正好需要
回復(fù)

使用道具 舉報(bào)

地板
ID:525375 發(fā)表于 2019-5-6 09:48 | 只看該作者
百度了半天終于找到了
回復(fù)

使用道具 舉報(bào)

5#
ID:557411 發(fā)表于 2020-3-10 00:29 | 只看該作者
正好需要
回復(fù)

使用道具 舉報(bào)

6#
ID:410680 發(fā)表于 2020-3-10 22:07 | 只看該作者
看看跟我用的一樣不一樣?
回復(fù)

使用道具 舉報(bào)

7#
ID:381698 發(fā)表于 2020-5-2 13:39 | 只看該作者
很好的工具,留個(gè)腳印!
回復(fù)

使用道具 舉報(bào)

8#
ID:733688 發(fā)表于 2020-5-6 08:02 | 只看該作者

很好的工具,留個(gè)腳印!
回復(fù)

使用道具 舉報(bào)

9#
ID:856762 發(fā)表于 2020-12-8 14:23 | 只看該作者
不錯(cuò)確實(shí)不錯(cuò)太好了
回復(fù)

使用道具 舉報(bào)

10#
ID:64872 發(fā)表于 2020-12-17 20:44 | 只看該作者
以前下載過,不錯(cuò),
回復(fù)

使用道具 舉報(bào)

11#
ID:89386 發(fā)表于 2021-1-31 16:08 | 只看該作者
怎么看C文件和H 文件在哪里?
回復(fù)

使用道具 舉報(bào)

12#
ID:585365 發(fā)表于 2021-9-25 18:02 | 只看該作者
學(xué)習(xí)下怎么用
回復(fù)

使用道具 舉報(bào)

13#
ID:585365 發(fā)表于 2021-9-25 18:08 | 只看該作者
有教程可以介紹下嗎?最好有相關(guān)的學(xué)習(xí)教程。謝謝
回復(fù)

使用道具 舉報(bào)

14#
ID:34149 發(fā)表于 2021-9-29 23:09 | 只看該作者
PLC.h經(jīng)典
回復(fù)

使用道具 舉報(bào)

15#
ID:191408 發(fā)表于 2021-10-21 22:00 | 只看該作者
下載下來研究一下看
回復(fù)

使用道具 舉報(bào)

16#
ID:333678 發(fā)表于 2021-10-22 00:51 來自手機(jī) | 只看該作者
很好的工具,多謝分享。
回復(fù)

使用道具 舉報(bào)

17#
ID:1025924 發(fā)表于 2022-5-12 11:14 | 只看該作者
很好的工具,留個(gè)腳印
回復(fù)

使用道具 舉報(bào)

18#
ID:1110015 發(fā)表于 2024-1-24 12:58 | 只看該作者
下載鏈接在哪里呀
回復(fù)

使用道具 舉報(bào)

19#
ID:228452 發(fā)表于 2024-1-25 03:43 | 只看該作者
"Since this site does not allow the upload of exe files"

can you upload everything as   File.RAR

People from Europe can't download from Baidu

     Thank you
回復(fù)

使用道具 舉報(bào)

20#
ID:4913 發(fā)表于 2024-6-19 18:01 | 只看該作者
還能分享一下軟件嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表