找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12453|回复: 18
打印 上一主题 下一主题
收起左侧

分享一个通过梯形图产生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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏23 分享淘帖 顶2 踩
回复

使用道具 举报

来自 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
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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