用STM32103R8T6做的控制器,外壳是高仿西门子双通讯口
大致做了2个月,pcb这是第二版。现在硬件基本已经没什么问题了。手工焊接,没有清洗,有点脏。 开关电源已经重新定做了,改为三组隔离电源,4路输出。所以板子有必要改第三版了。可以省掉通讯隔离用的DC/DC。http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484961.jpg
(原文件名:nEO_IMG_DSC1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484962.jpg
(原文件名:nEO_IMG_DSC2.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484963.jpg
(原文件名:nEO_IMG_DSC3.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484964.jpg
(原文件名:nEO_IMG_DSC5.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484965.jpg
(原文件名:nEO_IMG_DSC6.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484966.jpg
(原文件名:nEO_IMG_DSC7.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484967.jpg
(原文件名:nEO_IMG_DSC03428.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484968.jpg
(原文件名:nEO_IMG_DSC03425.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484969.jpg
(原文件名:nEO_IMG_DSC03429.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484970.jpg
(原文件名:nEO_IMG_DSC03430.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484992.jpg
(原文件名:nEO_IMG_DSC03459.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484993.jpg
(原文件名:nEO_IMG_DSC03460.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484994.jpg
(原文件名:nEO_IMG_DSC03461.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484995.jpg
(原文件名:nEO_IMG_DSC03462.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484996.jpg
(原文件名:nEO_IMG_DSC03463.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484997.jpg
(原文件名:nEO_IMG_DSC03464.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484998.jpg
(原文件名:nEO_IMG_DSC03465.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484999.jpg
(原文件名:nEO_IMG_DSC03466.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_485000.jpg
(原文件名:nEO_IMG_DSC03468.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_485001.jpg
(原文件名:nEO_IMG_DSC03471.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_485002.jpg
(原文件名:nEO_IMG_DSC03473.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_485003.jpg
(原文件名:nEO_IMG_DSC03476.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484980.jpg
(原文件名:nEO_IMG_DSC03420.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484981.jpg
(原文件名:nEO_IMG_DSC03453.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484982.jpg
(原文件名:nEO_IMG_DSC03454.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484983.jpg
(原文件名:nEO_IMG_DSC03457.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_484984.jpg
(原文件名:nEO_IMG_DSC03458.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_485004.jpg
(原文件名:nEO_IMG_DSC03477.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_485005.jpg
(原文件名:nEO_IMG_DSC03478.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_485006.jpg
(原文件名:nEO_IMG_DSC03480.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_485007.jpg
(原文件名:nEO_IMG_DSC03482.jpg) 沙发 CPU224XP 才有两个通讯口 做得不错,很漂亮 硬件上,运行停止开关没有买到。 问到的进口的,超贵,而且需要几周订货。
壳子上印的西门子字符,正式使用时,会擦掉,打自己的牌子和型号。
3个通讯口,1个232,两个485,现在可以任意配置为modbus 主机或从机,ascii或rtu
modbus移植自freemodbus, 但增加了主机栈,实现了协议多实例化,改动非常多,只是使用了freemodbus的一下编程思路。
本来准备购买freemodbus的商业版本,结果人家主机栈和从机栈算两套协议,6000以上。所以,一狠心自己写了。
通讯协议预留了ppi和三菱通讯协议接口,为了监控和下载,很快会先把三菱通讯协议先实现了。
设置了实时时钟,可充电电池供电,时间戳原理的程序已经调通。
扩展口留了隔离的can接口和非隔离的spi,can只通过了简单测试程序。
板上设置了一个电压检测芯片ht7044检测系统掉电,但是因为用系统自带的PVD检测掉电+大电容瞬间保存数据已经很稳定,所以暂时不用。
数据掉电保存采用crc32校验+备份三份来保证数据可靠。
核心的plc指令使用嵌入式汇编子程序实现,嵌套层数无限制,栈指令也实现了,没有级数限制。
已经移植了版主简易plc的程序,可以暂时用pwm转C,再编译来编程,但是确实很不方便。
优化了沿指令,定时器不占用定时间中断,在主循环里计时,不需要设置映像备份。
两路电位器输入,程序已经调好。
14个输入点,双向光耦隔离,10个输出点,继电器输出,输出部分留了晶体管电路,可选安装为晶体管输出。
输入输出端子安排全兼容西门子。
软件上需要做的主要还剩三菱通讯协议和程序下载上传,指令编译或解释。计划采用三菱指令编码格式,以便实现程序上传,指令在下位机编译或解释执行,实现方法已经构思好了。
有意找完善稳定的上位机软件程序作者合作,做自己独立产权的通用控制器
QQ:33824483 哈哈,很高兴又有一位PLC业者出现了。
但怎么都喜欢用西门子外壳呢? 感觉西门子PLC的端子盖设计的很差劲,非常容易就掰坏了,我都掰坏好几个了。 foshan_lcy 允: 留个联系方式,对你的机器视觉感兴趣,聊下吧。
用西门子壳子,是因为可是前几年买到的,价格不高。
用什么壳子都行,只要价格不高,做工好。
现在还没赚到钱,舍不得自己开模啊。 对STM32还不是很了解,加了梯形图解释程序后,不知道楼主的RAM够不够用.程序最多能达到几步. 外壳哪买的? 大容量SMD电解寿命不长,这是我的维修经验,三菱也是将大容量电解按排在电源板上,掉电信号也是在电源板取出,避开了大容量SMD电解的问题.可参考我贴出的三菱原理图.
一般超小型的电解使用效果并不好,无论是SMD或插孔的,而且价高. 1、电解最好用插件的,焊接质量才能有保证,贴片电解如果焊接质量不过关的话,震动太多就会掉电容了。
2、楼主用的那种排母不可靠。最好使用那种 蜈蚣脚 的可穿透式排母,接触才能可靠。 3、敷铜间距有点小了,只有0.3mm吧,要考虑下PCB板厂的加工质量,我们想当然的事情,结果并不是这么回事。偶是吃了PCB板厂的苦了。过后所有的板子的敷铜间距都调到0.4mm甚至0.6mm以上了。 这个外壳在哪里买的,挺不错的。 hzxiaobao: 梯形图是在上位机被转化为指令表,在下位机可以以特定的编码格式存放,比如按三菱通讯下载时的指令格式存放,这样的好处是可以上载程序。缺点是如果指令是解释执行,解释需要时间,执行速度稍慢点。如果指令是编译执行,速度快了点,但编译生成指令代码又要占一份空间。
程序是放在Flash中的,所以最多的程序步取决于每步占用的字节数和除系统程序占用外mcu剩余Flash空间,从现在看Flash占用在30-40K左右,所以如果选RB系列,128K Flash,最多的程序步数应该可以做不少的。 bkkman 和benladn911 AVR猎手 提到的SMT电容的寿命和容易掉的问题,以前确实没有考虑,改为插件是个好的建议,以前过分追求贴片化了。
benladn911 AVR猎手 “2、楼主用的那种排母不可靠” 指哪个排母? 上下板连接的那个单排的?我考虑电路板上的位置不可能用双排的。
敷铜间距有点小了,都是按最小间距10mil做的,现在的这家电路板长不从,铜箔很厚,线路很好,外形铣的很准确。 foshan_lcy 允: 留个联系方式,对你的机器视觉感兴趣,聊下吧。
----------------------------------------------------------
to 21ele :
Email:liangchongyun@21cn.com
tel:13630148724 上班时间公司的办公室会屏蔽电话信号,
所以上班时间信号不稳,晚上回家就没有问题了。 简单介绍一下我的机器视觉啦!
这个是我和我弟弟业余合作做的项目,
哈哈,不是正职,用来抄下更,所以价格比较合算。
通常会连带做点运动控制,主要是做下测量,检测,判别之类的问题。
哈哈就简单介绍那么多啦,有什么好主意可以联系下在下。
Email:liangchongyun@21cn.com 那种接线端子哪里有卖? 壳子是很早买的,备了一些,现在都不知道能不能买到。
接线端子是托朋友买的,具体地址我不太清楚,价格1元出头一线。 注意从电源板取出两个掉电信号,对PLC的数据安全,可靠性很重要.
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_485661.jpg
(原文件名:FX2N32MT-PW.jpg)
点击此处下载 ourdev_485662.PDF(文件大小:29K) (原文件名:FX2N-32MT-PW.PDF)
其他可参考
FX2N-4AD,-2DA,-16EX,-32MTPW,-32MTIO原理图
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1038544&bbs_page_no=1&bbs_id=3007 从电源板取出两个掉电信号,这个当然很好的。 但是我是后看到那个帖子的,另外,三层板的结构,把两个掉电信号引上去,稍微有点麻烦。我手里没有三菱plc,老是看着西门子做参考,西门子的掉电保护是用法拉电容做掉电保护的。
掉电保存的数据我设置了三块,都做校验,每次上电是读入掉电数据区,然后擦除掉电数据区,如果上次掉电时数据没有完整或有错误,则这次上电时就会加载掉电保存备份区的数据,如果备份区的数据也错误,那就回复出厂设定值。掉电时,PVD检测到Vcc电压到2.9V是,在PVD中断中,把新的数据写入掉电保存数据区中。
void EE_Read(void)
{
static vu32 a,b,c;
a = EE_Addr;
b = EE_Addr_BAK;
c = EE_Addr_DEF;
//-----------------------------------------------------//
// 断电保存数据CRC32 校验
//-----------------------------------------------------//
if( FlashCRC32CHK(EE_Addr, EE_U16_Size) )
{
//-----------------------------------------------------//
// 读取断电保存数据
FlashRead(EE_Addr, EE_U16_Size);
//-----------------------------------------------------//
// 更新断电保存数据备份区
//-----------------------------------------------------//
FlashErasePage( EE_Addr_BAK, EE_U16_Size);
FlashProgram( EE_Addr_BAK, EE_U16_Size );
}
else
{
//-----------------------------------------------------//
// 断电保存数据备份CRC32 校验
//-----------------------------------------------------//
if( FlashCRC32CHK(EE_Addr_BAK, EE_U16_Size) )
{
//-----------------------------------------------------//
// 读取断电保存数据备份
//-----------------------------------------------------//
FlashRead(EE_Addr_BAK, EE_U16_Size);
}
else
{
//-----------------------------------------------------//
// 读取断电保存数据默认值
//-----------------------------------------------------//
FlashRead(EE_Addr_DEF, EE_U16_Size);
//-----------------------------------------------------//
// 更新断电保存数据备份区
//-----------------------------------------------------//
FlashErasePage( EE_Addr_BAK, EE_U16_Size);
FlashProgram( EE_Addr_BAK, EE_U16_Size );
}
}
//-----------------------------------------------------//
// 擦除断电保存数据区
//-----------------------------------------------------//
FlashErasePage( EE_Addr, EE_U16_Size);
} 请教:
1.这个掉电保存区域用于保存一些什么数据呢?是不是一些M寄存器的值?
2.你这个是把这个掉电保存到片内的FLASH上面吧?那写入用IAP写入了?平常正常运行时,是否需要定时保存掉电保存区域呢?这个保存的频率一般是多大呢?
谢谢指点! 掉电保存的数据,对于plc来说,就是部分D单元和M单元。
掉电后,再上电,这些单元不被清零,而是读入上次掉电时刻的值。
写入的Flash,就是程序存储器。所以,如果写入时如果发生混乱,有可能损坏主程序。有一定的危险性。
正常运行时数据时不需要保存。 掉电保存数据,就是仅仅在掉电时的瞬间保存一下而已。上电时读入。正常运行时更行改变。
Flash写入次数是有限的,有的场合需要很短时间就保存一下数据,比如累计长度,累计时间,这种情况下即使是EEPROM的写入寿命也可能是不够的。所以仅在掉电时保存一下数据,效果因该是最好的。 花了不少时间,PCB做了2次,如要做好,PCB还要改5次,到明年了! 做的不错!留个记号! 电源有没有变压器的绕线方法参数,或者是哪里有现成的卖? 不错! 上面的电源是从力源定做的,实际使用效果不太好,辅路降压芯片是用mc43063做的,发热很大。主24只能输出200-300毫安,功率不足。变压器没有资料,当时是计划委托他们做的。 现在已经重新请人设计了电源板,4路输出,3路隔离。
主24V 400ma(PLC对外供电) ,辅24V 200ma(2596稳压,给继电器供电) 和共地的一个5V 200ma(2595稳压,给mcu电路供电), 辅5v 100ma(7805稳压,给隔离通讯电路供电 )。
设计为全直插单面板,bom成本<30元。
样板做了20套,全部满载测试过了,很稳定,发热很小,最热的是24的2596,没加散热片,大致80-90度。
板子稍微修改了一下,重新做了200块,已近快做好了。 变压器定只做了100个。
这个板子有全套图纸,原理图,pcb,变压器绕制图。 新电源板,功率很足,每路都有余量,我很满意。 主24我带了两个触摸屏测试,轻松带起来了,连续工作几天,没什么问题。 点击此处下载 ourdev_495818.pdf(文件大小:77K) (原文件名:20W电源原理图.pdf) 不错 点击此处下载 ourdev_495832.pdf(文件大小:80K) (原文件名:20W电源原理图.pdf)
刚才发现转换为黑白的了,换个彩色的。 http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_495834.jpg
(原文件名:20W电源照片.jpg) 板子左侧有部分没有放置元件,并且做了一个拼版的槽孔,可以掰开,目的是,掰开以后,板子的大小将是西门子单通讯口,就是普通西门子200的电源板大小。一板两用。 点击此处下载 ourdev_495837.pdf(文件大小:40K) (原文件名:20W电源测试数据.pdf) 学习 mark mark 开关电源的变压器规格是怎么算出来的? 相当不错,顶 21ele
能不能整个联系方式上来,对你的产品感兴趣 搞到这一步了就应再进一步,你用的端子我知道哪有买的,大约7毛一位,在深圳。 QQ:33824483
现在程序按FX2N写,已经完成上传,下载,监控,强制,指令基本指令做了不少,正在做跳转调子功能指令等,计划指令全兼容三菱,最少兼容到80-90%。 我的端子是托朋友买的,好像也是深圳,只是价格稍高,是1元左右一位。另外关键是那个运行停止开关太难买了。进口的太贵。
这两天正在组织生产,因为已经开始在自己的项目上用。本来想外委加工,但一是加工数量少,二是担心外委加工质量和周期无法控制,所以还是决定先自己生产。我前几年早就买了一个5温区纯热风回流焊机,这次又买了超声波清洗机和洗板水。
去年外委到昆山加工了一批其他的板子,价格不贵,但是品质很不好,返修率非常高,估计锡膏不好,焊点发暗,焊接不良很多,对方说,因为业务多,所以我的单子他们又委给别人做的,而且周期拖得很长。所以对外委很有心里负担。
依据这个控制器,去年底我又变形了一个单板的控制板,计划今年批量使用。硬件设计很快,几天就画好了。软件基本上没变化,直接用,因为io定义变化很少。 mark 佩服,能共享一下变压器的参数跟绕制图吗 请问电源中主控芯片是什么型号?我怎么没有找到呀,谢谢! 关注! 楼主给个邮箱,我对你的产品有兴趣,我的邮箱:tony.zhang@vimar.cn 常常常常常常常常常常吃 关注. STM32103R8T6这款芯片的资源有点少,要是做解释型PLC,就有点不够了。 解释型没有问题啊,资源少主要是指D元,FX2N, 8000个D元,要占16K RAM, R8/RB只有20K RAM, 所以D元无法完全仿出来。
RB和R8价格相差很小,现在在用RB, 128K flash,做解释或编译型都是够用的了。 楼主: modbus 可以改成通过 CAN 口实现吗? QQ:1046100764 板上预留了磁耦隔离的can, CAN接口留在io扩展口里,软件只写了一个测试程序。can上实现modbus ? 没有试过。 回复【54楼】21ele
解释型没有问题啊,资源少主要是指D元,FX2N, 8000个D元,要占16K RAM, R8/RB只有20K RAM, 所以D元无法完全仿出来。
RB和R8价格相差很小,现在在用RB, 128K flash,做解释或编译型都是够用的了。
-----------------------------------------------------------------------
假如扩展SRAM,就都有了。
松下FP0用一片并行EEPROM及一片SRAM。 我是说用CAN口实现 MODBUS 的功能,如程序下载,在上位机显示下位机状态,控制下位机等 用不着扩展,扩展多麻烦,选新出来的105/107系列就行了。 扩展是麻烦,还有干扰问题。 我感兴趣的是那漂亮的外壳哪有。。。 好东西,MARK一下。同问外壳哪里搞的到? 不错,做个记号,以后来看 产品型号:STM32F103RCT6
Package / Case: LQFP-64
Program Memory Size: 256 KB
Data RAM Size: 48 KB
*************************************************
这个应可以了吧 我也正在做和你这块类似的板子,有好多问题想要请教,想和楼主联系,期待回复 mark mark 此贴非常有价值 回复【4楼】21ele
-----------------------------------------------------------------------
板上设置了一个电压检测芯片ht7044检测系统掉电,但是因为用系统自带的PVD检测掉电+大电容瞬间保存数据已经很稳定,所以暂时不用。
数据掉电保存采用crc32校验+备份三份来保证数据可靠。
-__________________________________________________
综合了您上面的和人家一起讨论的内容。
想确认一下您这里是如何设计的。
1)您是在PVD中通过检测到2.9V后进入掉电保存。
2)您是使用了大电容瞬间保存数据。
还是想像您确认
1)您保存的数据大概有多大? 512B, 1K? 或者其他?
2)PVD检测后,您怎么处理?大致是不是下面的操作?
A)关闭所有外设,
B)擦除FLASH
C)写入数据,存储校验值?
因为不知道具体操作过程。A操作的时间很短,没有问题。 但是B)和C)操作的时间就比较长了。
按照规格书,一个page的擦除时间TERASE时间在-40~105度的情况下,最小是20MS,最大是40MS
写入的时间是70US, 如果假设您写入的是512个字节,那么需要70*256约为18MS,擦除时间是40MS
这样计算下来,您如果写入512个字节就需要18mS+40=58MS。
而在运行擦除和烧写的时候,都需要不小的电流消耗,写是最大7MA,擦是5MA。
当然看您解释似乎是上电复位的时候进行擦除操作的,所以仍旧需要写入512字节的18MS的时间。
以上的计算都是按照最坏情况进行考虑的。
不知道您是如何进行的设计的?采用的大电容是不是仅供电给MCU,和主电源之间您增加了二极管?
这个电容您是如何选择的? 电容我现在都是用1000uF, 位置是在3.3V 。
擦除时间比较长,所以肯定是放在上电期间进行的。
pvd中断处理,你猜的是对的,来了之后,所作的工作就是关闭外设,向已经擦除了的扇区写入需要掉电保存的数据,并在最后附上crc32校验,要更完善点,也可以接着检测电压是否恢复并保持足够时间,直接恢复工作状态,否则等待,直到彻底没电。
上电期间,读取上次掉电保存区的数据,并检查校验,如果正确,则将数据载入ram,否则读取上上次掉电数据,并检查数据有效性,如果数据仍然有问题,则载入出厂设置数据。
电容保持时间,我拿示波器看过,时间是最够的,比如保存1-2k字节数据。 我程序中保存1K 多数据,实际使用,可以可靠保存。 楼主的端子哪里买的,找不着呢 mark 回复【70楼】21ele
-----------------------------------------------------------------------
谢谢您的回复!
关于掉电这部分我已经明白您的软件设计了。非常感谢!学到了很多设计上的经验。
但仍旧有需要向您确认。
“电容我现在都是用1000uF, 位置是在3.3V 。”
因为没有看过您的电路图,所以根据您的信息再次猜测。
1)您并不是我说的,在布线的时候在主电源和CPU供电间增加一个DIODE,然后单独为CPU增加大电容。而是在主电源上增加了1000UF的电容。
2)根据1,我猜测,您没有使用外部的复位电路,是不是仅仅使用RC回路,而采用的是STM32F的内置POV?
但上诉设计方案,我认为在正常操作范围内是一个正确的流程,想再次向您确认一下
3)您是否对上诉的软件设计采取过随机power on/OFF的时间呢?随机的上电,断电一定的次数而机器无任何软件,硬件,程序的损伤。
您的设计是我看到比较完整的产品之一。
4)另外也同71楼同问,您的端子台在什么地方购买?MOLEX看到了这个产品,询问价格吓死人啊!而且说是有专利费的。
5)您的右侧扩展端口如何设计?这部分在整个论坛里似乎讨论的很少,都是仅仅本体的设计。但是仅仅I/O没有模拟量的应用局限性也不小。
我的信箱是gpfrank@163。com,您是否可以告知联络方式,方便学习交流呢?给您添麻烦了! 1,2 你的猜测是对的,3.3V电源主回路并大电容简化了硬件设计,这个也是我试验的结果,曾经在5V侧串二极管并大电容再过LDO为3.3, 但是掉电效果不好。 3.3V电源主回路并大电容最大的缺点是上电期间,大电容充电,电流比较大。
3 严格的测试没有进行过,只是模拟实际工作状态时,反复多次进行随意掉电,再次上电,发现最后状态ram值都能得以保存。
理论上这种方法的掉电保存数据是有一定危险的,主要就是怕电容没充足电,就掉电了,这样可能数据没有保存完就没电了。这种情况下校验数据没有生成,下次上电校验无法通过,就只好取上上次掉电数据了。第二种情况就是,上电后数据载入完成后,刚刚开始擦除扇区,就掉电了,这种情况下,应该是要等擦除完成才能写入的,擦除时间又比较长,所以很可都数据也是写不完就没电了,仍然是下次上电校验无法通过,就只好取上上次掉电数据了。但是刚才两种情况下按常理系统应该都没有怎么正常运行,也就没有产生新的有效数据,所以读入上上次数据应该也是没有问题的。
4 端子不算太难买,价格1元一位左右。另外以前在苏州和上海的电子市场逛是也发现过这个端子。
5 扩展我只是预留了CAN和SPI ,还没有仔细考虑如何实现。但是按最近项目的经验,原则上本地的io扩展最好是不带cpu,直接纯硬件扩展比较好,考虑好级联的方式就行。 远程扩展IO, CAN应该是比较合适的方式。 mark mark 回复【74楼】21ele
-----------------------------------------------------------------------
"5 扩展我只是预留了CAN和SPI ,还没有仔细考虑如何实现。但是按最近项目的经验,原则上本地的io扩展最好是不带cpu,直接纯硬件扩展比较好,考虑好级联的方式就行。 远程扩展IO, CAN应该是比较合适的方式。"
您的意思是也类似于“windows7”的方案中的采用 串行转 595,165的方式?
这个方式不知道是否可行,如果像西门子,三菱,OMRON等那样是采用一段10CM线的方式,不知道是否能够抵抗住噪音。
采用595,165的方式扩展I/O似乎还可以,如果扩展AD/DA,一个通道就要用掉16位。做个4个通道就要32位,如果使用595,165的方法也要用掉8片,似乎也不是很方便。
网络上看到很多仿西门子的扩展单元,不知道是用什么方式,从线的数目上看,肯定是简单的串行,不会是CAN等总线的方式。不知道西门子是如何处理对抗噪音实验的。这部分应当是本体PLC设计的一个难点现在看来。因为都讨论本体设计了。本体如果电源设计的好,大部分噪音实验应当是没有问题的,而这部分看似是内部的总线,但是如果没设计好,引入很多噪音,对PLC的问题定性有一定的问题。 很好! 即使只有10CM线,如果是用ttl电平传送信号,也很可能受到干扰。 现场的干扰,如大功率变频器+电机的干扰几乎是无处不在的,10cm的线做够引入干扰了。
所以必须想办法避免干扰。能想到的办法有两个:一是该电流环传递信号,简单,实用,价格低,容易实现隔离,缺点是速度不能做到太快。 另外一个办法就是用rs485之类芯片,用差分电平传送信号,这个方法速度快,效果好,是专业做法。
如果只扩io, 电流环+595+165比较实用。
如果IO较多,或要扩AD, 那恐怕还是要用mcu或cpld或fpga. 8错 marker,结构做的不错,值得借鉴,请问那个接线柱那里买的 mark 牛! 厉害啊111 外形看上去很酷啊~~
支持,支持~~ 标记 阅读 ! 层叠堆积,外壳很绚丽。 口水啊 这个外壳不错哪里买的? 厉害呀 牛 楼主厉害。佩服! 好好好好好好好 楼主很牛啊,向你学习了,能不能发个PLC的输入输出口的原理图给小弟参考下,我有个单片机的产品会用到,刚好也是用stm芯片,先谢过了,我的邮箱37566037@qq.com 这个资料很有营养,值得学习。 支持LZ。能否给一份PCB的外形尺寸。制作PCB用的。谢谢 QQ454655312 计划想全部开源软硬件,出售硬件套件,仅作为单片机开发板,只是太忙了,没时间。 21ele 发表于 2012-8-17 11:55 static/image/common/back.gif
计划想全部开源软硬件,出售硬件套件,仅作为单片机开发板,只是太忙了,没时间。 ...
{:3_46:} lz的想法很诱人啊 你的这个设计比较完善了
不知道楼主测试稳定性怎么样啊?? 哦。。。开源,那不错,订一套搞搞 很期待
` 21ele 发表于 2012-8-17 11:55 static/image/common/back.gif
计划想全部开源软硬件,出售硬件套件,仅作为单片机开发板,只是太忙了,没时间。 ...
俺给你顶起 不知道我能否帮上忙呢 瓦 乃一大三学生 时间还算充裕
页:
[1]
2