搜索
bottom↓
回复: 49

可以自由DIY硬件资源和梯形图编程的MicroPLC 1.0正式发布!

[复制链接]

出0入0汤圆

发表于 2007-6-23 23:11:33 | 显示全部楼层 |阅读模式
本人其实也是OurAVR的“老人”了,一直关注“类PLC”活动的进展,结合自己的兴趣,经过近半年的开发,终于完成此软件,请各位关注此话题的朋友试用并提宝贵意见。下面是简介:



MicroPLC是在Atmel公司ATMega系列单片机的硬件平台基础上按照通用PLC原理及标准开发的一套PLC核,同人们传统认识的 PLC产品相比,其相同点是都采用梯形图程序开发用户程序,但MicroPLC提供了更多的灵活性,一是在IO资源的分配方面,用户可以根据自己的实际需要自行决定输入/输出口的数量与特性,另一方面MicroPLC开发定位于微型低成本PLC核,因此在PLC的总体成本构成中,PLC核被降低到等同于一片单片机芯片的程度,最低仅为5元左右,因此能够兼顾适用于开发通用PLC和特定PLC产品的情况。对于用户而言,具备一定技术基础的情况下可以直接进行芯片级PLC开发,不具备技术能力的用户也可以购买采用MicroPLC核的通用标准PLC产品。

产品特征:

        低成本的开发环境(MicroPLC软件),通过梯形图进行编程

        使用者根据情况,IO输入输出方向可自行更改

        程序使用闪存储(Flash Memory)技术,在不使用电池的状态下,同样保证系统的安全

        程序可选择通过廉价ISP下载线、编程器或计算机RS232端口(测试中,下一版本)进行下载

        工作状态下,可以通过计算机进行监控PLC的运行(测试中,下一版本)

        源程序可以采用镕丝加密

        半导体型 (IC型)PLC核,可在线路板上直接组装,节省了大量的无用线路连接

        资源自由裁减,降低产品成本

        体积小,可以减小产品尺寸

当前版本的MicroPLC具备基本指令23条,规划中的应用指令提供诸多特殊功能,而其它品牌的 PLC一般需单独购买这些特殊模块。正处于测试中的下一版本MicroPLC将具备下列功能:

        最大内置10位8信道A/D变换器,通道数和滤波权数可自由设定

        内置30KHz 16位高速计数器一个

        内置16位双通道PWM,不仅可以进行PWM输出,还可以进行定数脉冲输出,驱动步进系统

        内置国内低成本、高抗干扰性BC7281A/B显示接口,用于驱动最大16位的LED数码管和最大64键的键盘

        内置工业Modbus协议通讯功能,可以与标准触摸屏等人机界面接口

        内置SPI及I2C接口,可以进行输入输出IO及其他方面的自由扩展



当前版本的软件开放的芯片资源主要是输入输出IO和RS232(UART)通讯,其中RS232(UART)UART是标配内容,通过RS232接口,可以实现工业标准ModbusRTU协议的通讯功能。

引脚输入/输出功能的切换可以通过勾选相应引脚前的复选框来实现;所有的输入口可以设置统一的数字滤波时间,时间范围是0~500ms,按照经验判断,一般设定为5~20ms即可有效消除暂态震荡信号。PLC软件架构是按照标准PLC架构设计,扫描循环为:第一次扫描开始——内务处理——RS232通讯——读取输入口位镜像——解算用户程序——更新输出口位镜像——等待——第二次扫描…,PLC扫描周期指的是一次循环的最大时间,原则上建议扫描周期应该大于一次扫描的处理时间,否则有可能导致定时错误。一个判断用户程序执行所需时间的有效方法是把PLC扫描周期调整为0ms,在用户程序中增加一个F11寄存器(每扫描周期交替改变逻辑状态)同步输出的信号,检测信号的频率(为扫描时间的2倍)即可知道用户程序解算需要的准确时间,有了准确时间后再把PLC扫描周期设定为略大的数值即可。另外根据测试,MicroPLC的运行速度大约是36550步/秒@7.3728MHz,振荡频率提高到14.7456MHz,运行速度可以再提高一倍,因此用户程序可以根据步数和此速度数据推断扫描周期的最佳值。

其他灰色的资源目前处于测试阶段,将来的版本会逐步开放。系统所支持的AVR芯片以及每种芯片所能提供的内部资源可以通过切换到“内存”标签查看,下面把当前软件所能操控的资源汇总如下表:



芯片型号        引脚IO

(X、Y)        内部继电器(M)        特殊内部继电器(F)        定时器

(T)        计数器

(C)        Word型变量

(WD)        用户程序空间(步)

ATMega48        18        256        32        16        16        52        >318

ATMega8/88        18        512        32        32        32        80        >1334

ATMega168        18        512        32        32        32        80        >4004

ATMega16        30        512        32        32        32        80        >4013

ATMega169        51        512        32        32        32        80        >3891

ATMega32        30        1024        32        64        64        256        >9474

ATMega64        51        4096        32        64        64        512        >20292

ATMega128        51        4096        32        64        64        512        >42137

注:1)软件提供2种优化编译选项,即速度优化和Flash占用大小优化,上表中的用户程序空间数据是在速度优化选项下获得。

2)系统中对元件的编号基数从1开始,假设共有16个定时器,那么依次定义为T1、T2…T16。

3)未来的版本随着新指令的开放,用户程序空间会减少。

4)从资源和执行效能看,采用如M8等廉价芯片的MicroPLC确已具备目前中档PLC的能力。当然它所支持的指令目前限于基本指令,进一步的计划中应用指令不会增加很多,只是基本的运算、条件判断、脉冲、AD、显示接口以及通讯接口。

5)特殊内部寄存器F的定义:

序号        寄存器名称        寄存器特性

1        F1        上电复位

2        F2        外部复位脚复位

3        F3        BOD检测复位

4        F4        看门狗复位

5        F5        JTAG调试复位

6        F6~F7        保留

7        F8        运行状态

8        F9        总ON

9        F10        总OFF

10        F11        每扫描周期交替变化

11        F12        第一个扫描周期OFF

12        F13        第一个扫描周期ON

13        F14        每秒交替变化

14        F15        每0.5秒交替变化

15        F16~F32        保留





程序安装包:点击此处下载armok01159200.rar



也可以到我的网站下载其他资料。

http://microplc.siteem.com/
-----此内容被MicroPLC于2007-06-23,23:12:34编辑过

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2007-6-23 23:41:58 | 显示全部楼层
朋友们可以把软件生成的HEX放到仿真软件中检验效能!

出0入0汤圆

发表于 2007-6-23 23:46:51 | 显示全部楼层
强!

出0入0汤圆

发表于 2007-6-24 06:27:59 | 显示全部楼层
厉害。

出0入0汤圆

发表于 2007-6-24 08:29:56 | 显示全部楼层
加油,这个软件可以升级成支持多种MCU的梯形图编程平台,那就很受广大工程人士喜欢了。

出0入0汤圆

发表于 2007-6-24 10:44:58 | 显示全部楼层
能做好AVR的就已经很难得了. 不过向上发展高性价比,还是放弃AVR,选用ARM会好点.

出0入0汤圆

 楼主| 发表于 2007-6-24 11:08:07 | 显示全部楼层
个人认为,AVR的资源和效能已经相当出色了,MicroPLC的运行速度大约是36550步/秒@7.3728MHz,振荡频率提高到14.7456MHz,运行速度可以再提高一倍,这里的步是指一条梯形图指令,出于效能考虑,我不想过多增加应用指令,只考虑PWM、定数脉冲、AD、条件比较判断、SPI扩展等不十分影响效能的指令,总之,我的观点是AVR芯片在低价位PLC定位方面是最具性价比的。

出0入0汤圆

 楼主| 发表于 2007-6-24 16:06:32 | 显示全部楼层
MicroPLC执行效能的测试方法:把扫描周期调整为0ms,这样AVR会全力执行用户程序,在你的程序中增加一个

|---F11-------OUT Y1----|

的语句行(Y1可以为别的输出口),这样当AVR执行时就可以在每扫描周期变更一次Y1的电平逻辑,这样你测量它的频率,然后乘以2,可以得到你编制的用户程序的扫描次数/秒,编译时系统会告诉你一共多少条梯形图指令,这两个数相乘就可以大致得出AVR芯片的平均效能了。

出0入0汤圆

 楼主| 发表于 2007-6-24 16:23:14 | 显示全部楼层
从另一个角度来看51和AVR的性价比对比,要是用AT89S51/52来做MicroPLC,PWM、AD、等等的可能性肯定都没有了。另外51的RAM也就128/256Byte,而M48就提供了512Byte,如果只作开关量的话,内部继电器软元件M48占用了130Byte,全局服务变量占用了61个,所以要是256ByteRAM的话,从数量上来说将就。但执行速度上如果按照降低10倍来算,每秒基本上可以执行3600条指令,实用性可就大打折扣了。



结论:玩单片机,选用AVR是明智之举!

出0入0汤圆

发表于 2007-6-25 01:45:51 | 显示全部楼层
有点儿类似国外的那个产品,芯片支持方面少了些,不过实际应用不知道如何。

出0入0汤圆

发表于 2007-6-25 14:15:05 | 显示全部楼层
请教LZ,一般的高,中,低档的PLC执行效能是多少?你的在哪个范围?

出0入0汤圆

发表于 2007-6-25 15:50:32 | 显示全部楼层
如果下一个版本出来,可以考虑买一套

出0入0汤圆

 楼主| 发表于 2007-6-25 18:23:40 | 显示全部楼层
下一个版本不会让大家等太久!

关于“高,中,低档的PLC执行效能”,我是参考书本上写的,可能书本有些老也不一定,那本书上是这样的:



确实有些老了,距今15年的课本了。

出0入0汤圆

发表于 2007-6-25 20:20:59 | 显示全部楼层
呵呵呵原来我找了一个英文版本的,但是看不懂,现在这个中文版倒是很好啊,我等菜鸟很希望有这样的东西的,不知道楼主定的价格是多少?

出0入0汤圆

发表于 2007-6-25 20:31:22 | 显示全部楼层
呵呵呵原来我找了一个英文版本的,但是看不懂,





我也是不懂用    呵呵

出0入0汤圆

发表于 2007-6-25 22:21:08 | 显示全部楼层
期待楼主的新版本咯

出0入0汤圆

发表于 2007-6-26 09:38:06 | 显示全部楼层
有些51的RAM也很多,像CYGNAL单片机的C8051F020  100-Pin, 12-Bit ADC, 4352 RAM, 64k Flash MCU,还有飞利蒲的单片机.现在的高性能51也适合做软PLC.

出0入0汤圆

发表于 2007-6-26 15:40:12 | 显示全部楼层
关注中:☆☆☆☆☆ 2007年6月24日,规划设计基于ATMega8的12输入/6输出开关量的PLC,带DIN安装外壳,预计售价在100-120¥,主要用于给初学者学习MicroPLC,另外也可以用到工程实际,减少学习的资金投入。

出0入0汤圆

 楼主| 发表于 2007-6-26 18:26:31 | 显示全部楼层
最快也要半个月左右出来,主要是最近事情较多。

不过我随后会尽快发布一个用于验证MicroPLC效能的单面PCB设计,朋友们可以自己制作PCB,或者等我的PCB都可以。

出0入0汤圆

发表于 2007-6-26 23:08:27 | 显示全部楼层
非常期待新版本!!!

出0入0汤圆

 楼主| 发表于 2007-6-27 01:05:32 | 显示全部楼层
这是刚设计的MicroPLC的效能验证板,芯片可以为M48/M8/M88/M168,提供X1-X8按键,Y1-Y8的LED输出,RS232,PWM,AD,CNT高速计数的测试验证功能。已经付诸PCB打样。明日即将设计12输入/6输出的M8PLC-1,应用指令也在加紧测试中,敬请期待!





这是PCB文件,供下载。



点击此处下载armok01159500.rar

出0入0汤圆

发表于 2007-6-27 08:24:42 | 显示全部楼层
不错,值得学习!

出0入0汤圆

发表于 2007-6-28 08:36:50 | 显示全部楼层
期待哦...頂起!!!

出0入0汤圆

发表于 2007-6-28 10:44:52 | 显示全部楼层
编译型的呀?每次都把所有生成的代码写到rom里面?

出0入0汤圆

发表于 2007-6-28 15:55:17 | 显示全部楼层
有没有旋转编码器的接口?

出0入0汤圆

 楼主| 发表于 2007-6-28 20:58:28 | 显示全部楼层
目前的版本只具备生成HEX的能力,所以是需要每次下载到flash中。

规划中的版本有高速计数能力,但可能不适合编码器。因为毕竟是低成本微型解决方案,不可能做到快而全。

出0入0汤圆

 楼主| 发表于 2007-6-28 23:46:03 | 显示全部楼层
今天设计完毕并付诸PCB制作MG1206R(ATMega8芯片,12路输入,6路继电器输出)PLC硬件,技术措施有:输入采用光偶电气隔离,外接电路与板载芯片不共地设计,输出采用国内著名品牌宏发高品质、大功率继电器,整体具有很高的抗干扰性能,外壳采用标准工控电器外壳,底部配有DIN轨道安装卡具,对板子有很好的防护性能。下面是PCB截图:

出0入0汤圆

发表于 2007-6-29 14:50:04 | 显示全部楼层
好,期待樓主結果,等待下一個版本...哈哈,有得玩了.

出0入0汤圆

发表于 2007-6-30 09:58:56 | 显示全部楼层
看看这板如何!我多出了10块。元器件都焊好的哦!8路输入,5路输出,带3个按键,三位数码管显示设置数据和参数。




-----此内容被shaozh于2007-06-30,10:01:38编辑过

出0入0汤圆

发表于 2007-6-30 10:15:48 | 显示全部楼层
要是考虑对旋转检测的话,输入端加4013组成一个电路,A\B脉冲输入,输出方向和频率脉冲,再给PLC不就可以了么

出0入0汤圆

发表于 2007-6-30 10:18:51 | 显示全部楼层
[MicroPLC]:





         不知你的功能中有没有变量掉电贮存功能。这很重要啊。

         再一个是定数脉冲输出功能为步进马达控制用。。。。

出0入0汤圆

发表于 2007-6-30 10:22:25 | 显示全部楼层


    霍尔传感器的输出信号经过光电耦合器U12、U13进行光电隔离,以滤除一些干扰信号。然后经过四个非门进行两次取反,这样做的目的是提高信号的驱动能力,同时进一步滤除一些干扰(经过示波器观看两路信号的波形,发现脉冲的上升沿和下降沿附近均没有“毛刺”电压)。处理过的IN2信号取反之后通过U9光电隔离之后得到信号O1,信号O1的脉冲就代表着主轴的旋转数,之后到PLC的高速计数器的输入端。轴编码器电路中还用到一个Q触发器,这是用来确定主轴的转向的,Q触发器输出的高低电平就表示着主轴是正转还是反转。Q触发器的输出信号经光电隔离之后为信号O2,送到PLC。

    当年毕业设计的,已经实际运行,很好用,

出0入0汤圆

发表于 2007-6-30 13:45:14 | 显示全部楼层
不错,不错,期待下一版,先搭个试试

出0入0汤圆

 楼主| 发表于 2007-6-30 20:58:31 | 显示全部楼层
shaozh老兄的板子设计的有功底,佩服!那天帮兄弟设计一个?我请客。

不过提几点意见:端子最好分布两侧或一侧,否则可能引起电工布盘引线的意见;输出建议采用ULN系列,好用不贵,参数合理;输入电路希望改进,否则肯容易引入干扰信号,我用你的这种电路,吃亏大了;你的端子建议采用多于四位的,连接牢固一些。不一定合适,仅供参考。

eddia2000:定数脉冲是肯定要有的,EEPROM变量暂时未开放,将来肯定会增加一些丰富的软元件。

erxun 老孟:感谢你的资料,很不错,我消化一下!
-----此内容被MicroPLC于2007-06-30,21:09:14编辑过

出0入0汤圆

发表于 2007-7-1 09:08:48 | 显示全部楼层
最近一个项目上用的板子,我看适合做plc的板子:mega64 24IN 16OUT 1RS232 2RS485(io模拟一个) 2ADC, 已经实现标准modbus通信协议。QQ:33824483






-----此内容被21ele于2007-07-01,09:21:17编辑过

出0入0汤圆

发表于 2007-7-1 11:41:51 | 显示全部楼层
MicroPLC:

      等待你的好消息,,,

出0入0汤圆

发表于 2007-7-1 12:17:44 | 显示全部楼层
呵呵,我也在做类似的板子

出0入0汤圆

 楼主| 发表于 2007-7-1 19:13:26 | 显示全部楼层
建议朋友们把自己的板子亮出来晒晒,替所有的学生们谢谢呃!

出0入0汤圆

 楼主| 发表于 2007-7-1 21:18:32 | 显示全部楼层


我发个以前的产品照片先。

出0入0汤圆

发表于 2007-7-4 20:05:06 | 显示全部楼层
看上去不錯哦

出0入0汤圆

发表于 2007-7-4 22:05:45 | 显示全部楼层
给个IO点多点的

出0入0汤圆

发表于 2007-7-4 22:18:50 | 显示全部楼层
再来一个刚设计完还没作出来的,25入(1路直接外部中断),24输出,1路DAC(由PWM产生),RS485通信接口,输入输出通信电路均作了隔离

点击此处打开armok01160368.pdf
-----此内容被zlf667788于2007-07-04,22:20:27编辑过

出0入0汤圆

发表于 2007-7-4 22:35:18 | 显示全部楼层
当然,也有点数比较少的,这个是9点入,6点出的

出0入0汤圆

发表于 2007-7-4 22:45:52 | 显示全部楼层
鉴于前段时间做的一套板出现了在有变频器时会受干拢的问题,痛下决心又作了一个DC/DC,计划以后用于所有新设计的工业控制类的板子上,一并拿出来给大家排砖

出0入0汤圆

 楼主| 发表于 2008-3-18 23:18:28 | 显示全部楼层
我们认为,对一个PLC设计来说,电源是至关重要的。

出0入0汤圆

发表于 2011-12-2 08:47:06 | 显示全部楼层
dddddddddddddddddddddddddd

出0入0汤圆

发表于 2012-3-1 23:39:08 | 显示全部楼层
mark plc

出0入0汤圆

发表于 2012-3-3 22:26:31 | 显示全部楼层
学习

出0入0汤圆

发表于 2012-3-4 01:44:56 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-2 23:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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