找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 16021|回复: 19
打印 上一主题 下一主题
收起左侧

分享一个通过梯形图产生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软件

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏28 分享淘帖 顶3 踩
回复

举报

来自 2#
ID:115923 发表于 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


回复

举报

板凳
ID:527324 发表于 2019-5-5 00:23 来自触屏版 | 只看该作者
正好需要
回复

举报

地板
ID:525375 发表于 2019-5-6 09:48 | 只看该作者
百度了半天终于找到了
回复

举报

5#
ID:557411 发表于 2020-3-10 00:29 | 只看该作者
正好需要
回复

举报

6#
ID:410680 发表于 2020-3-10 22:07 | 只看该作者
看看跟我用的一样不一样?
回复

举报

7#
ID:381698 发表于 2020-5-2 13:39 | 只看该作者
很好的工具,留个脚印!
回复

举报

8#
ID:733688 发表于 2020-5-6 08:02 | 只看该作者

很好的工具,留个脚印!
回复

举报

9#
ID:856762 发表于 2020-12-8 14:23 | 只看该作者
不错确实不错太好了
回复

举报

10#
ID:64872 发表于 2020-12-17 20:44 | 只看该作者
以前下载过,不错,
回复

举报

11#
ID:89386 发表于 2021-1-31 16:08 | 只看该作者
怎么看C文件和H 文件在哪里?
回复

举报

12#
ID:585365 发表于 2021-9-25 18:02 | 只看该作者
学习下怎么用
回复

举报

13#
ID:585365 发表于 2021-9-25 18:08 | 只看该作者
有教程可以介绍下吗?最好有相关的学习教程。谢谢
回复

举报

14#
ID:34149 发表于 2021-9-29 23:09 | 只看该作者
PLC.h经典
回复

举报

15#
ID:191408 发表于 2021-10-21 22:00 | 只看该作者
下载下来研究一下看
回复

举报

16#
ID:333678 发表于 2021-10-22 00:51 来自触屏版 | 只看该作者
很好的工具,多谢分享。
回复

举报

17#
ID:1025924 发表于 2022-5-12 11:14 | 只看该作者
很好的工具,留个脚印
回复

举报

18#
ID:1110015 发表于 2024-1-24 12:58 | 只看该作者
下载链接在哪里呀
回复

举报

19#
ID:228452 发表于 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
回复

举报

20#
ID:4913 发表于 2024-6-19 18:01 | 只看该作者
还能分享一下软件吗?
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表