标题: 分享一个通过梯形图产生C语言代码的工具 [打印本页]

作者: 暴走的y先生    时间: 2019-2-25 14:45
标题: 分享一个通过梯形图产生C语言代码的工具
分享一个通过梯形图产生C代码的工具,适用于各种MCU,有拿单片机做PLC可以用一下。梯形图导入后,将生成的.c.h文件包含进去,在MCU的主循环中把输入输出都映射好就可以工作。下面是应用到STC90c516rd+的例子,附件包含代码。注意:mcu至少有0.5K 的RAM才能运行这段代码(89c52不行)。


单片机源程序如下:
  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;        //定时器时钟1T模式
  64.     TMOD &= 0xF0;        //设置定时器模式
  65.     TMOD |= 0x01;        //设置定时器模式
  66.     TL0 = 0x20;        //设置定时初值
  67.     TH0 = 0xD1;        //设置定时初值
  68.     TF0 = 0;        //清除TF0标志
  69.     TR0 = 1;        //定时器0开始计时
  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;        //设置定时初值
  84.     TH0 = 0xD1;        //设置定时初值
  85.        PLC_TimerISR();
  86. }

复制代码
梯形图to C语言编译工具+示例代码


下载地址:已删除
由于本站不允许上传exe文件,大家可以去百度搜索下载GUTTA Ladder To C软件

作者: abcdefbcdef    时间: 2019-5-5 00:23
正好需要
作者: awma    时间: 2019-5-6 09:48
百度了半天终于找到了
作者: xyzdh    时间: 2020-3-10 00:29
正好需要
作者: yangfeng2068    时间: 2020-3-10 22:07
看看跟我用的一样不一样?
作者: liu86708670    时间: 2020-5-2 13:39
很好的工具,留个脚印!
作者: feng2    时间: 2020-5-6 08:02

很好的工具,留个脚印!
作者: 1132422595    时间: 2020-12-8 14:23
不错确实不错太好了
作者: a294303665    时间: 2020-12-17 20:44
以前下载过,不错,
作者: 嘿嘿嘿    时间: 2021-1-31 16:08
怎么看C文件和H 文件在哪里?
作者: 247015164    时间: 2021-9-25 18:02
学习下怎么用
作者: 247015164    时间: 2021-9-25 18:08
有教程可以介绍下吗?最好有相关的学习教程。谢谢
作者: dyx811    时间: 2021-9-29 23:09
PLC.h经典
作者: zhaobolove    时间: 2021-10-21 14:24
免安装  ,  这点不错, ,

先打开 PLC编程软件,   
可以导入 三菱的PWM格式梯形图程序
也可以 自己编辑梯形图程序
然后 点菜单的PLC里面 全部编译, 如果没有出错, 会有下图 出现,  

按照 顺序 1, 2, 3,4 步骤,
1.  检查编译有没有错,  
2.  找到转换的C窗口
3.  点击 下面的source栏
4.  找到 PLC_INT0   ,  开始从这里开始到结束 拷贝.

然后打开 实例代码, 文件夹里的 plc.uvproj  --- 这个要安装Keil uv4软件
实例代码缺少  stc89c5xrc.h  我已经补全了, 在文件夹里.
然后在  PLC.c的里面, 找到最后的一个函数 void PLC_INT0(void)
把刚才拷贝的替换换掉 这里面的内容.
编译一下, 下载到MCU 即可 .

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



作者: zhlzhang    时间: 2021-10-21 22:00
下载下来研究一下看
作者: cb474265474265    时间: 2021-10-22 00:51
很好的工具,多谢分享。
作者: pact    时间: 2022-5-12 11:14
很好的工具,留个脚印
作者: 5211111    时间: 2024-1-24 12:58
下载链接在哪里呀

作者: mick32    时间: 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
作者: popopo258    时间: 2024-6-19 18:01
还能分享一下软件吗?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1