搜索
bottom↓
回复: 63

(旧贴)我想用M8搞个类似于PLC的控制系统,有人报名参与吗?(一)

 关闭 [复制链接]

出0入0汤圆

发表于 2004-10-31 11:15:05 | 显示全部楼层 |阅读模式
本人有个想法! 我面对的主要是单片机在机械方面的控制,我很想搞个类似于PLC的控制系统!里面有基本的输入输出硬件!带有LCD 按键 掉电记忆参数 WTD AD/DA 等硬件和驱动程序 在不同的系统中可以写进不同的子程序来完成各种不同的应用! 有没有人一起来讨论这个方案是不是可行?





-----注:本贴回复太多,导致打开太慢,请到新贴处讨论,本贴已经上锁



新贴地址: http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=55422&bbs_page_no=1&bbs_id=1000
头像被屏蔽

出0入0汤圆

发表于 2004-10-31 11:21:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2004-10-31 13:48:03 | 显示全部楼层
噢!谢谢阿莫,我取的名字不够切题!  :>

出0入0汤圆

发表于 2004-10-31 16:24:32 | 显示全部楼层
我想应该行,但这个单片机必须拥有比较多的资源来存放管理程序。

出0入0汤圆

发表于 2004-10-31 16:40:13 | 显示全部楼层
这个是没问题的,但你必须做到:

1、总结你的应用场合,找出这些场合的共通之处,定制自己的指令接口规范,提供统一、易用的宏指令,就像WINDOWS的API函数一样;

2、在单片机里要有一套高效的指令解释系统,解释用户的宏指令,就像VB的RUNTIME一样;

3、在单片机里运行一套多任务OS,这样才能及时相应用户的指令,同时能提高系统牢固性,让OS自己把死掉的任务KILL掉,提高抗干扰性能。



我的建议:

1、使用串口(或其衍生的传输方式如RS485等)作为基本输入渠道,通用且容易与工控设备连接;

2、AVR的8通道ADC、其他通用IO线可以作为系统的输出设备,但是一定要添加光耦隔离;

3、移植UCOS II至AVR,让其管理单片机的资源和任务。

出0入0汤圆

 楼主| 发表于 2004-11-1 21:02:44 | 显示全部楼层
哇!这么复杂啊!我可没有想过搞这么复杂的东东啊!我只是想做一套通用的类PLC的硬件!里面的程序还是由单片机工程师来写!以前用51做了个,但是没有搞看门狗!不稳定!不敢拿出来!只要放在家里自己玩!贴个正面外观图出来让大家指导一下!  ^_^

出0入0汤圆

 楼主| 发表于 2004-11-1 21:24:30 | 显示全部楼层
我现在正想用M8来搞一个单片机PLC!可是现在还对M8的硬件资源不是很熟悉!不知道它的23个IO口能否胜任这个要求!

    我希望能有8个输出口和8个输入口(其中带有两路AD,带串口,IIC)! 板载8个按键!可以外括成16个键!自带1602LCD,掉电记参数(M8自带),不知道要怎么安排IO口比较合理,请各位帮帮我!

  以下是示意图(还不知道是不是可行,请大家指点):





有没有哪位有兴趣的!非常欢迎一起来研究研究!

出0入0汤圆

 楼主| 发表于 2004-11-1 21:38:23 | 显示全部楼层
介绍一下我的这个灵感来源:

   主要是因为市场上面的PLC很少有自带人机介面的!而在实际应用时,经常遇到一些简易的地方!比如在驱动单轴伺服,步进定位模块时!要经常改变一些参数!现在的做法一般是用PLC+触摸屏!而一个触摸屏的价格动不动就是几千上万元!还有就是在一些模拟量的控制方面!用PLC也是成本很高!因此有了搞个这种东东的想法!

出0入0汤圆

发表于 2004-11-1 22:52:49 | 显示全部楼层
单片机做运算比较密集的项目核心确实有其优势,但是我想不出这么几个按钮,如何灵活控制IO线呢?还有,如果没有隔离缓冲如何控制外设,特别是带强电的外设。

出0入0汤圆

 楼主| 发表于 2004-11-1 23:18:39 | 显示全部楼层
对于gxlujd说的这个问题.我以前拆了几个PLC了!他们是这样搞的!对于输入模块!全部有加光耦!输出部份多数是用一块ULN2803等芯片来联接外部的中间继电器!再用中间继电器去控制更强的交流接触器,最后用接触器去控制更高的高压,如三相马达等!而那几个按键主要是用来控制程序的流程,参数的变更!以及启动停止等! I/O口的控制主要还是依靠程序要求来工作的!!

出0入0汤圆

 楼主| 发表于 2004-11-1 23:19:06 | 显示全部楼层
谢谢阿莫的支持!!

出0入0汤圆

 楼主| 发表于 2004-11-1 23:25:49 | 显示全部楼层
谁有兴趣的话,我可以提供我以前用51机做的MCUPLC系统共参考!包括PCB与SCH图,源程序等!不过这套系统是我原来用在移印机的控制上的!只是还有些小问题没有搞完!但还是可以将就的用的! :)

出0入0汤圆

 楼主| 发表于 2004-11-1 23:26:10 | 显示全部楼层
谁有兴趣的话,我可以提供我以前用51机做的MCUPLC系统共参考!包括PCB与SCH图,源程序等!不过这套系统是我原来用在移印机的控制上的!只是还有些小问题没有搞完!但还是可以将就的用的! :)

出0入0汤圆

发表于 2004-11-1 23:39:34 | 显示全部楼层
有趣的项目,我感兴趣,极度期待你的资料中,不过对于这个大项目我目前只能通过BASIC语言来设计,C语言还不是很熟。

出0入0汤圆

 楼主| 发表于 2004-11-2 00:04:28 | 显示全部楼层
好的!不过要等我回家才有的哦!我现在住在公司里呀!

出0入0汤圆

 楼主| 发表于 2004-11-2 00:13:44 | 显示全部楼层
对了!我用一块和89C51一样引脚的AVR焊上去!那我原来的PCB板好像就可以继续使用了是吧!

     不知道在Mega有没有和89C51一样引脚的芯片!

出0入0汤圆

发表于 2004-11-2 07:57:16 | 显示全部楼层
MEGA8515/MEGA161/MEGA162都可以。

出0入0汤圆

发表于 2004-11-2 09:51:40 | 显示全部楼层
http://emg.ele-diy.com/eshop/2004-03-09/eshop55i59i836.html

这个产品介绍可能比较有参考价值。

出0入0汤圆

 楼主| 发表于 2004-11-2 11:08:43 | 显示全部楼层
TO:gxlujd 彩虹数码,我以前做的PCB板是用的贴片89S51,MEGA8515/MEGA161/MEGA162也有有贴片的吧!这样我的PCB板就又复活了! :)



<font color=red> 还有没有人一起来研究一下呀!我们都是初学者呀!一起来讨论一下嘛!!

出0入0汤圆

 楼主| 发表于 2004-11-2 11:11:35 | 显示全部楼层
我上面那个构想图,我还知道能不能行的通啊!谁帮我看看呀!不知道用74164能不能那样即驱动LCD又驱动两排键盘??

出0入0汤圆

发表于 2004-11-2 11:40:12 | 显示全部楼层
1602LCD至少要6根IO,标准16键键盘要8根IO,剩下的输入输出IO线就不多了,所以建议使用M16,比较好扩展。

出0入0汤圆

发表于 2004-11-2 12:03:38 | 显示全部楼层
如果是做一个简单的系统肯定是可以的,如果端口不足,可以通过扩展外部并口。我认为M8的端口太少,用M16比较合适,可以减少扩展端口的麻烦。如果想做得通用一点的话,用M128好了。
头像被屏蔽

出0入0汤圆

发表于 2004-11-2 12:09:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2004-11-2 12:20:46 | 显示全部楼层
我也想试试,可是我很菜的。请多多关照!

出0入0汤圆

发表于 2004-11-2 12:35:22 | 显示全部楼层
算我一个吧,想跟各位高手学习学习。

rwns@etang.com

出0入0汤圆

发表于 2004-11-2 14:07:37 | 显示全部楼层
用m128我想参加。

出0入0汤圆

发表于 2004-11-2 14:33:41 | 显示全部楼层
我也想参加。但是,课题一个一个来比较好,先做完智能充电器再说。
头像被屏蔽

出0入0汤圆

发表于 2004-11-2 15:47:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2004-11-2 16:37:28 | 显示全部楼层
我最近也有此想法,算我一份.

出0入0汤圆

发表于 2004-11-2 17:33:51 | 显示全部楼层
呵呵,好有想法的主意...

支持一下,对于PLC只停留再学校学过简单编程.



不知道,怎么做编程器?...

且要保持稳定...

出0入45汤圆

发表于 2004-11-2 18:38:17 | 显示全部楼层
我有一本书就是讲用51来做PLC的控制系统,它软硬件都讲的很详细,有PLC指令所的对应的51汇编指令。

出0入0汤圆

发表于 2004-11-2 19:17:57 | 显示全部楼层
我同意  zhzzh18 小章

出0入0汤圆

发表于 2004-11-2 20:21:48 | 显示全部楼层
找找资料,比较感兴趣...

出0入0汤圆

发表于 2004-11-2 20:41:19 | 显示全部楼层
个人意见:

电路部分增加一片1MBFlash(Atmel的DataFlash就不错,8脚贴片封装,容量又大)用作用户程序储存



其它包括程序下载、伪码生成及解释、错误处理、底层函数接口等代码都用C实现,不过8K容量应该很紧张,M16就会比较充裕了



另外程序下载及调试采用串口足以,并且因为PLC代码解释执行,在用户程序的角度来说是看不到区别的



再……如能附带64K以上的串行RAM更佳,这样就能在用户程序中支持大型数组和多层过程调用了……

出0入0汤圆

 楼主| 发表于 2004-11-3 00:11:06 | 显示全部楼层
有这么多人支持!又可以学到好多东东啦!!

出0入0汤圆

发表于 2004-11-3 00:35:24 | 显示全部楼层
这个工程太浩大了,实现的话几乎不可能,我所在的工厂用的大的自控系统基本上都是PLC控制,主要的都是SIMENS的S7系统,单片机用在智能仪表方面还是空间很大的,但用在PLC上,就太价廉物美了,毕竟一块CPU的造价和它的性能成一定比例关系啊。
头像被屏蔽

出0入0汤圆

发表于 2004-11-3 07:33:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2004-11-3 08:24:00 | 显示全部楼层
举个例子



6502大家知道吧?最早用在Apple II机器上的时候,时钟速度1MHz,95%指令为双周期指令,整机内存48K(后来IIe扩展到64K,II+扩展到128K),不区分程序和数据存储器,没有任何附加设备,连串口都得手工添加扩展卡



就这么落后的一个片子,这么一套落后的机器,不但能跑解释型的basic,还能运行编译型的pascal以及使用cp/m操作系统(dos的前身),而且操作并不迟钝



所以其实从性能上论,8~16Mhz主频,90%指令为单周期指令的AVR要跑一个PLC应该说绰绰有余的,关键就是看是不是确实做到了需要什么做什么,就这么简单

出0入0汤圆

 楼主| 发表于 2004-11-3 08:48:42 | 显示全部楼层
同意syqiu 我们并不是要做个非常完美的PLC系统出来!而最主析只不过是在学习与了解PLC的构造!

我个人认为真正有意议的是!能够做出一个成比较完美的类PLC的硬件系统出来!而里面的程序则可以在不同的应用中重新用ICCAVR来编写!这样子的话可以减少硬件开发和成本!并且硬件系统也不会那么繁杂!而程序对于单一个系统来说!也会比需要解释的"PLC"更精简的多!而且这样的一套硬件平时我们还可以用来做各种AVR的试验!

当然,如果大家有兴趣把它做成PLC的话,也是很好的项目,不过就真的会像wsmcjm说的那样:"工程太浩大了"!

出0入0汤圆

发表于 2004-11-3 09:31:47 | 显示全部楼层
是不是有点象这个样子,然后留个isp口或者jate口,实际上纯粹一个裸机。










-----此内容被agui868于2004-11-03,09:38:06编辑过

出0入0汤圆

 楼主| 发表于 2004-11-3 20:38:38 | 显示全部楼层
是的!应该叫"裸机"!和上图中的前一个一样!下面一个现在市场有好多了!包括西门子,施耐德等都有类似的产品了!一般叫"智能继电器"!

出10入120汤圆

发表于 2004-11-4 01:00:59 | 显示全部楼层
PLC有两点很重要:

1、高可靠性

2、易用性



对于第一点,我相信有一个优秀的设计者并不是很难;但第二点对于个人或者是一个小的团队来说就有些困难了,无论从经济还是精力上。



大家不知道清楚还是不清楚,据说西门子SETP 7光这个软件的研发费用就是几个亿!

出0入0汤圆

发表于 2004-11-4 04:01:27 | 显示全部楼层
前人栽树后人乘凉就可以了,正因为有人在前面花了几个亿做各种人机工程学设计,现在正好可以免去这些昂贵的重复劳动



另外,个人意见,编译器采用gcc,理由



1、gcc是跨平台的编译器,用这个开发可以直接把不包含驱动程序的代码在PC上运转测试,相比用什么模拟器来的轻松愉快的多



2、以gcc为开发工具,并且严格遵照ANSI C的标准设计程序,未来转型相对容易很多,而ICCAVR太过贴近汇编了,养成不好的习惯的话很容易对AVR产生依赖性



3、这个工程既然本质上是为了体验设计一个代码解释器的全过程,那么严格遵循标准C规范能够更加容易的掌握相关的算法和数据结构



4、gcc生成的目标代码速度快稳定性高,这在解释器应用中是很重要的



另外再补充一点资料



PHP 大家都知道吧?相比PLC不知道复杂了多少,但是人家直到3.0都几乎是一个人开发的,而且从来没听说花过多少钱,至今这个软件也是开源免费的



Apache 大家也知道吧?比微软IIS装机量更多的web服务器程序,从头到尾都是开源免费软件,而且到现在也没听说出过什么问题——相比bug频频漏洞如筛子的IIS,一个词,云泥之别……

出0入0汤圆

发表于 2004-11-4 08:46:43 | 显示全部楼层
支持,

出0入0汤圆

 楼主| 发表于 2004-11-4 19:09:04 | 显示全部楼层
还有没有人一起来的啊?现在大家能不能先讨论一下我们应该怎么开始这个项目啊?彩虹有什么建议!还是要等大家手上的事先忙完了再说?
头像被屏蔽

出0入0汤圆

发表于 2004-11-4 19:14:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2004-11-4 19:34:12 | 显示全部楼层
那么现在的问题是,在此的诸位对“PLC”这三个字母的特殊组合,到底了解到什么程度?



如果一边说要开发一套解释器,一边却连自己程序要解释的东西到底是什么还要现抱本书啃……这个……除了年轻时候的收费门老先生,我尚未听说有第二个人如此做了并且还成功了……

出0入0汤圆

发表于 2004-11-4 19:41:52 | 显示全部楼层
酸话不提了



个人意见,在做PLC解释器之前,最好大家先在自家机器上装个GCC,然后试着写这样几段程序出来:



1、中缀表达式转前缀表达式及前缀表达式求值,或基本正则表达式的解析



2、针对2,实现它的流处理版,注意代码的内存开销不得大于512BYTE



3、在一维__int8数组内进行的内存动态分配及回收



4、不利用任何 c 扩展库实现 scanf 函数
头像被屏蔽

出0入0汤圆

发表于 2004-11-4 19:43:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2004-11-4 19:58:52 | 显示全部楼层
那么个人建议,斑竹就此问题对大家加以适当引导,既然是从零开始,那么就应该一步一个脚印,在很多人连C语言都不熟悉的情况下讨论制作PLC解释器明显过分空中楼阁了些,但若改换思路,从简单的开始做起的话,却往往能收到意想不到的好效果



举例,以Apple IIe上面那种叫做“整型Basic”的东西作为开发目标,这个相对现实的多,而且就AVR应用及二次开发的大环境看,这套语言也足够满足绝大多数应用场合的需要了

出0入0汤圆

发表于 2004-11-4 20:15:22 | 显示全部楼层
关于 Apple II 上的 整型Basic



保留字同 QBasic(这东西NT4.0上还有,不过2000彻底换成VBS了),区别在于



1、数据类型只支持 16位整数(10进制、16进制和8进制)、小于254字节长度的字符串、不超过8000个元素的整数数组,因此函数支持也只包括这三种数据类型



2、必须采用带行号编程,且流程控制语句只有 IF...Then 、For...Next和 Goto,没有子程序调用功能
头像被屏蔽

出0入0汤圆

发表于 2004-11-4 20:20:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2004-11-4 20:35:42 | 显示全部楼层
15年前的老东西了,现在只是因为还有地方在用6502核心的MCU所以还能多少记住点,整理出一份资料就没什么可能性了



大体上就是CPU主频1M,但是所有指令都是双周期或四周期指令,而内存访问集中在上升沿(嗯,应该没记错),所以下降沿就被设计用来给扩展卡和视频电路用



视频电路则是简单的循环读取内存中的特定地址范围,然后加载到空白的电视信号上(这一点上,我坚持认为,至少对8位机来说,模拟电路实现的行场频发生器远比CPU自己做来得轻松愉快的多)



其它的便是固化了整型basic(IIe改为浮点basic,中华学习机则两个都有而且还增加了简单的汇编程序),以及固化了5寸单面盘的驱动程序,大体上就这样吧……

出0入0汤圆

 楼主| 发表于 2004-11-4 23:19:59 | 显示全部楼层
我想说几句!我的本意并没有想要搞个这么复杂的系统出来!大家可以看下我之前一直是用"类PLC"来称呼它的!只是后来不断有更多的高手进来!不断的在关注这个主题,不断的在把这个主题完美化!这要感谢大家!



我只是想找几个同伴一起来做这样的一个"类PLC":

1  它具有一个比较完善的硬件系统!很着与PLC差不多的稳定性,在这个硬件环境下,可以通过改变内部的软件来满足尽量多的实际应用!比如数字控制,少量的模拟量控制,串口通信,可控脉冲发生等一些用途!

2  在软件方面.我是这样想的!开发环境还是在IIC上面!但是我们可以写好一些本硬件通用的子程序在一个基本工程里面!比如显示LCD的驱动,开机的一些LOGO,参数设置,看门狗,延时等常用的程序, 而把真正有控制意议的程序集中在一个子程序里面并空出来由往后在实际的应用中编写!就像是在做一道填空题一样!

出0入0汤圆

 楼主| 发表于 2004-11-4 23:35:52 | 显示全部楼层
如果这套硬件做出来了我们也可以做很多其它的试验了!而且还可以是真正有用的功能,比如可以用来控制/改装家里的电器(如做成智能电风扇,北方的智能加热器,用它控制普通的电饭煲)!做密码锁!防盗器,学习AVR,甚至把家里有所有灯具微电脑化!帅先进入家庭灯具微电脑信息化时代( 呵呵!说的太美好了!实现起来不容易 :)  但是这是肯定可以做到的! )

出0入0汤圆

 楼主| 发表于 2004-11-4 23:40:36 | 显示全部楼层
To: 阿莫

     谢谢你的支持,不过我以前没有合作过这些玩意啊!一直都是自己瞎搞的!没有合作的经验!也不知道需求文档是怎写的!你能否给点具体的指示啊!我们这些后来者具体该怎么做啊?
头像被屏蔽

出0入0汤圆

发表于 2004-11-5 06:58:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入8汤圆

发表于 2004-11-5 09:42:12 | 显示全部楼层
to Melin 秀秀:可否先给写资料看看? 我想我还是有些兴趣的。

出0入0汤圆

 楼主| 发表于 2004-11-5 12:20:03 | 显示全部楼层
Grant :你想要的是什么资料?

出0入0汤圆

发表于 2004-11-5 15:35:50 | 显示全部楼层
最好能用m16,m8我没办法仿真硬件。
头像被屏蔽

出0入0汤圆

发表于 2004-11-5 15:42:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2004-11-5 16:58:07 | 显示全部楼层
建议开一个新的话题,这里贴子太多了,打开太慢。
头像被屏蔽

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-9 12:10

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

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