1. plc与C语言有什么关系啊!
PLC与C语言一点关系都没有
PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计 数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。PLC及其有关的外围设备都应该按易于与工业控制系统形 成一个整体,易于扩展其功能的原则而设计。
目前,PLC在国内外已广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保及文化娱乐等各个行业,使用情况大致可归纳为如下几类。
3.1开关量的逻辑控制
这是PLC最基本、最广泛的应用领域,它取代传统的继电器电路,实现逻辑控制、顺序控制,既可用于单台设备的控制,也可用于多机群控及自动化流水线。如注塑机、印刷机、订书机械、组合机床、磨床、包装生产线、电镀流水线等。
3.2模拟量控制
在工业生产过程当中,有许多连续变化的量,如温度、压力、流量、液位和速度等都是模拟量。为了使可编程控制器处理模拟量,必须实现模拟量(Analog) 和数字量(Digital)之间的A/D转换及D/A转换。PLC厂家都生产配套的A/D和D/A转换模块,使可编程控制器用于模拟量控制。
3.3运动控制
PLC可以用于圆周运动或直线运动的控制。从控制机构配置来说,早期直接用于开关量I/O模块连接位置传感器和执行机构,现在一般使用专用的运动控制模 块。如可驱动步进电机或伺服电机的单轴或多轴位置控制模块。世界上各主要PLC厂家的产品几乎都有运动控制功能,广泛用于各种机械、机床、机器人、电梯等 场合。
3.4过程控制
过程控制是指对温度、压力、流量等模拟量的闭环控制。作为工业控制计算机,PLC能编制各种各样的控制算法程序,完成闭环控制。PID调节是一般闭环控制 系统中用得较多的调节方法。大中型PLC都有PID模块,目前许多小型PLC也具有此功能模块。PID处理一般是运行专用的PID子程序。过程控制在冶 金、化工、热处理、锅炉控制等场合有非常广泛的应用。
3.5数据处理
现代PLC具有数学运算(含矩阵运算、函数运算、逻辑运算)、数据传送、数据转换、排序、查表、位操作等功能,可以完成数据的采集、分析及处理。这些数据 可以与存储在存储器中的参考值比较,完成一定的控制操作,也可以利用通信功能传送到别的智能装置,或将它们打印制表。数据处理一般用于大型控制系统,如无 人控制的柔性制造系统;也可用于过程控制系统,如造纸、冶金、食品工业中的一些大型控制系统。
3.6通信及联网
PLC通信含PLC间的通信及PLC与其它智能设备间的通信。随着计算机控制的发展,工厂自动化网络发展得很快,各PLC厂商都十分重视PLC的通信功能,纷纷推出各自的网络系统。新近生产的PLC都具有通信接口,通信非常方便。
PLC软件系统由系统程序和用户程序两部分组成。系统程序包括监控程序、编译程序、诊断程序等,主要用于管理全机、将程序语言翻译成机器语言,诊断机器故 障。系统软件由PLC厂家提供并已固化在EPROM中,不能直接存取和干预。用户程序是用户根据现场控制要求,用PLC的程序语言编制的应用程序(也就是 逻辑控制)用来实现各种控制。STEP7是用于SIMATIC可编程逻辑控制器组态和编程的标准软件包,也就是用户程序,我们就是使用STEP7来进行硬 件组态和逻辑程序编制,以及逻辑程序执行结果的在线监视。
3.2 PLC提供的编程语言
3.2.1 标准语言梯形图语言也是我们最常用的一种语言,它有以下特点
3.2.1.1 它是一种图形语言,沿用传统控制图中的继电器触点、线圈、串联等术语和一些图形符号构成,左右的竖线称为左右母线。
3.2.1.2 梯形图中接点(触点)只有常开和常闭,接点可以是PLC输入点接的开关也可以是PLC内部继电器的接点或内部寄存器、计数器等的状态。
3.2.1.3 梯形图中的接点可以任意串、并联,但线圈只能并联不能串联。
3.2.1.4 内部继电器、计数器、寄存器等均不能直接控制外部负载,只能做中间结果供CPU内部使用。
3.2.1.5 PLC是按循环扫描事件,沿梯形图先后顺序执行,在同一扫描周期中的结果留在输出状态暂存器中所以输出点的值在用户程序中可以当做条件使用。
3.2.2 语句表语言,类似于汇编语言。
3.2.3 逻辑功能图语言,沿用半导体逻辑框图来表达,一般一个运算框表示一个功能左边画输入、右边画输出。
2. 搞电子专业的.我需要掌握些什么必要的知识.会用那些系统软件工具
掌握了一下的硬件和软件知识,基本上就可以成为一个合格的电子工程师:
第一部分:硬件知识
一、 数字信号
1、 TTL和带缓冲的TTL信号
2、 RS232和定义
3、 RS485/422(平衡信号)
4、 干接点信号
二、 模拟信号视频
1、 非平衡信号
2、 平衡信号
三、 芯片
1、 封装
2、 7407
3、 7404
4、 7400
5、 74LS573
6、 ULN2003
7、 74LS244
8、 74LS240
9、 74LS245
10、 74LS138/238
11、 CPLD(EPM7128)
12、 1161
13、 max691
14、 max485/75176
15、 mc1489
16、 mc1488
17、 ICL232/max232
18、 89C51
四、 分立器件
1、 封装
2、 电阻:功耗和容值
3、 电容
1) 独石电容
2) 瓷片电容
3) 电解电容
4、 电感
5、 电源转换模块
6、 接线端子
7、 LED发光管
8、 8字(共阳和共阴)
9、 三极管2N5551
10、 蜂鸣器
五、 单片机最小系统
1、 单片机
2、 看门狗和上电复位电路
3、 晶振和瓷片电容
六、 串行接口芯片
1、 eeprom
2、 串行I/O接口芯片
3、 串行AD、DA
4、 串行LED驱动、max7129
七、 电源设计
1、 开关电源:器件的选择
2、 线性电源:
1) 变压器
2) 桥
3) 电解电容
3、 电源的保护
1) 桥的保护
2) 单二极管保护
八、 维修
1、 电源
2、 看门狗
3、 信号
九、 设计思路
1、 电源:电压和电流
2、 接口:串口、开关量输入、开关量输出
3、 开关量信号输出调理
1) TTL―>继电器
2) TTL―>继电器(反向逻辑)
3) TTL―>固态继电器
4) TTL―>LED(8字)
5) 继电器―>继电器
6) 继电器―>固态继电器
4、 开关量信号输入调理
1) 干接点―>光耦
2) TTL―>光耦
5、 CPU处理能力的考虑
6、 成为产品的考虑:
1) 电路板外形:大小尺寸、异形、连接器、空间体积
2) 电路板模块化设计
3) 成本分析
4) 器件的冗余度
1. 电阻的功耗
2. 电容的耐压值等
5) 机箱
6) 电源的选择
7) 模块化设计
8) 成本核算
1. 如何计算电路板的成本?
2. 如何降低成本?选用功能满足价格便宜的器件
十、 思考题
1、 如何检测和指示RS422信号
2、 如何检测和指示RS232信号
3、 设计一个4位8字的显示板
1) 电源:DC12
2) 接口:RS232
3) 4位3”8字(连在一起)
4) 亮度检测
5) 二级调光
4、 设计一个33位1”8字的显示板
1) 电源:DC5V
2) 接口:RS232
3) 3排 11位8字,分4个、3个、4个3组,带行与行之间带间隔
4) 单片机最小系统
5) 译码逻辑
6) 显示驱动和驱动器件
5、 设计一个PCL725和MOXA C168P的接口板
1) 电源:DC5V
2) 接口:PCL725/MOXA 8个RS232
1. PCL725,直立DB37,孔
2. MOXA C168P,DB62弯
3) 开关量输出信号调理:6个固态继电器和8个继电器,可以被任何一路信号控制和驱动,接口:固态继电器5.08直立,继电器3.81直立
4) 开关量输入调理:干接点闭合为1或0可选,接口:3.81直立
5) RS232调理:
1. LED指示
2. 前4路RS232全信号,后4路只需要TX、RX、0
3. 无需光电隔离
4. 接口形式:DB9(针)直立
第二部分:软件知识
一、 汇编语言
二、 C51
该部分可以从市场上买到的N种开发板上学到,至于第一部分,需要人来带吧。
为什么要掌握这些知识?
实际上,电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这
些器件分离时无法完成的功能,做成一个成品。所需要的技能越高、功能越复杂、
成本越低、市场上对相应的东东的需求越大,就越成功。这就是电子工程师的自身
的价值。从成本到产品售出,之间的差价就是企业的追求。作为企业的老板,是在
市场上去寻找这样的应用;对电子工程师而言,是将老板提出的需求或者应用按照
一定的构思原则(成本最低、可靠性最高、电路板最小、功能最强大等)在最短的
时间内完成。最短的时间,跟电子工程师的熟练程度、工作效率和工作时间直接有
关。这就是电子工程师的价值。
将电子产品抽象成一个硬件的模型,大约有以下组成:
1) 输入
2) 处理核心
3) 输出
输入基本上有以下的可能:
1) 键盘
2) 串行接口(RS232/485/can bus/以太网/USB)
3) 开关量(TTL,电流环路,干接点)
4) 模拟量(4~20ma、 0~10ma、0~5V(平衡和非平衡信号))
输出基本上有以下组成:
1) 串行接口(RS232/485/can bus/以太网/USB)
2) 开关量(TTL、电流环路、干接点、功率驱动)
3) 模拟量(4~20ma, 0~10ma,0~5V(平衡和非平衡信号))
4) LED显示:发光管、八字
5) 液晶显示器
6) 蜂鸣器
处理核心主要有:
1) 8位单片机,主要就是51系列
2) 32位arm单片机,主要有atmel和三星系列
51系列单片机现在看来,只能做一些简单的应用,说白了,这个芯片也就是做单一
的一件事情,做多了,不如使用arm来做;还可以在arm上加一个操作系统,程序既
可靠又容易编写。
最近三星的arm受到追捧,价格便宜,以太网和USB的接口也有,周立功的开发系统
也便宜,作为学习ARM的产品来说,应该是最好的;作为工业级的控制,是不是合
适,在网友中有不同的看法和争议。本公司使用atmel ARM91系列开发的1个室外使
用的产品,在北京室外使用,没有任何的通风和加热的措施,从去年的5月份到现
在,运行情况良好。已经有个成功应用的案例。
但对于初学者来说,应该从51着手,一方面,51还是入门级的芯片,作为初学者练
手还是比较好的,可以将以上的概念走一遍;很多特殊的单片机也是在51的核的基
础上增加了一些I/O和A/D、D/A;也为今后学习更高一级的单片机和ARM打下基础。
再说了,哪个老板会将ARM级别的开发放在连51也没有学过的新手手中?
在51上面去做复杂的并行扩展是没有必要的,比如,扩展I/O口和A/D、D/A等等,
可以直接买带有A/D、D/A的单片机;或者直接使用ARM,它的I/O口线口多。可以使
用I2C接口的芯片,扩展I/O口和A/D、D/A,以及SPI接口扩展LED显示,例如:
MAX7219等芯片。
市面上一些比较古老的书籍中还有一些并行扩展的例子,如:RAM、EPROM、A/D、
D/A等,我觉得已经没有必要去看了,知道历史上有这些一回事就行了;
这些知识,是所有产品都具备的要素。所以要学,再具体应用。
说一个小的故事:野人献曝。
从前,有一个农民,冬天干了活后,休息晒太阳。好舒服呀。
他想,这么舒服的享受,我要献给国王,让他也能得到享受。
于是他兴冲冲地到了王宫,将他的宝贵经验献给了国王。
我现在就象这个农民,把自己认为很宝贵的经验献给大家。希望大家多提宝贵意见
;拍板砖也可以,骂我也无所谓,呵呵,随便。
第一课:51单片机最小系统
实际上,51单片机核心外围电路是很简单的,一个单片机+一个看门狗+一个晶振
+2个磁片电容;
1. 单片机:atmel的89C51系列、winbond的78E52系列,还有philips的系列,都差
不多;现在有一些有ISP(在线下载的),就更好用了;
2. 看门狗:种类很多,我常用的有max691/ca1161和DS1832等,具体看个人习惯、
芯片工作电压、封装等。Max系列和DS系列,还有IMP公司的,种类很多,一般只需
要有最基本的功能就可以了;原来我使用max691,但是max691比较贵,因为它有电
池切换功能,后来新设计电路板,就都采用ca1161了。
很早以前的电路设计中,现在可能还有人使用,使用一个电阻和一个电容达成的上
电复位电路;但是,这样的复位电路一个是不可靠,为什么不可靠,网络上能找得
到专门论述复位电路的文章;更重要的是,51系列的单片机比较容易受到干扰;没
有看门狗电路是不行的,当程序跑飞时,回不来了,死在那里。
常规的做法是买一个专门的看门狗电路,完成复位电路和看门狗电路的功能。
这些芯片的资料很容易在网络上找到,通常使用网络搜索就可以了;看见有PDF的
字样,就点击下载;使用网际快车flashget下载也是最好的;
这些资料通常是pdf格式的文件,所以,还需要一个pdf的阅读器。
网络网址:http://www..com
网际快车下载网址:http://www.skycn.com/soft/879.html
PDF阅读器下载网址:http://www.chinapdf.com/download.htm
实际上,有了网络和其它的搜索引擎,很方便下载到这些芯片的资料,比光盘还方
便,不需要去到处找。
单片机和单片机抗干扰能力是不一样的。如果你的产品是工作在干扰比较大的环境
,可以试试选用不同品牌的单片机;原来我在一个光电所,做YAG激光治疗机的控
制部分,脉冲激光机的电源放电的时候,能量是很大的,在采取了所有能够想到的
光电隔离等措施之后,还是不行;后来,选用了intel的8031,就可以了。小声的
说:当时的philips的单片机抗干扰性能是最差的,可能跟Philips主要是用在民用
领域有关。现在不知道怎么样了,有人知道的话告诉我。
单片机的输入输出口线是最容易引进干扰的地方;在严重干扰的情况下,需要将所
有的口线光电隔离。
3. 晶振:一般选用11.0592M,因为可以准确地得到9600波特率和19200波特率;也
可以使用36.864M,这个频率是1.8432M的20倍,看别人的电路板上用过,我也没有
用到。这2种晶振很容易买到,价钱跟12M的一样。书上说,12M的晶振也能得到
9600的波特率,但是,实际用的时候,会每隔一段时间就出错一次,好像累积误差
一样,比较奇怪。
即使你的单片机系统不使用RS232接口,也可以做一个Rs232,留着做测试,或者预
留等等,没有坏处。除非你的单片机系统的口线不够用了。
4. 磁片电容:22pf~30pf,可以在有些书上找到什么晶振频率对应什么容量的磁
片电容,但是,我都是随便拿来使用,反正在11.0592M下,都没有问题;如果你用
到了更高的频率,最好还是找找资料看看。
参见以下电路图:
如果你的单片机系统没有工作,检查步骤如下:
1. 查看门狗的复位输出,可能的话在电路板上加一个LED,下拉,这样看起来就更
方便;要是看门狗复位信号有,往下;
2. 查单片机,看看管脚有没有问题;一般编程器能够将程序写入,说明单片机是
好的;最好手头上准备一个验证过的单片机,内部有一个简单的程序,比如,在某
个口线上输出1个1秒占空比的方波等,可以使用万用表测量。
加一句:设计产品时,要在关键的地方:电源、串口、看门狗的输出和输入、I/O
口等加不同颜色的LED指示,便于调试;作为批量大的产品,可以去掉部分LED,一
方面是降低成本、一方面是流程保密;
3. 再查磁片电容,有些瓷片电容质量不行,干脆换了;顺便说一下,换器件最好
使用吸锡带,将焊盘内的锡吸干净,再将器件拔出,这样不会损伤焊盘内的过孔;
再将新的瓷片电容焊接上去的时候,用万用表量量是好的再焊;
4. 最后只有换晶振了;切记要买好的晶振,有些品牌质量比较好。
5. 以上按照以上步骤检测时,将无关的外围芯片去掉;因为有一些是外围器件的
故障导致单片机最小系统没有工作。
第二课 基本的芯片和分立器件
2.1 简述
2.2 74系列
2.3 CD4000系列
2.4 光耦与光电管
2.5 三极管
2.6 电容电阻
2.7 固态继电器
2.8 继电器
2.9 变压器和三端稳压器
2.10 开关电源芯片
2.11 封装知识、芯片批号等
2.12 接插件
2.13 器件选购的知识
第三课 数字量的输入输出
第四课 单片机的通讯接口
第五课 单片机系统设计的硬件构思
第六课 单片机程序的框架(汇编版本)
第七课 模拟量的输入输出
……
各位多提宝贵意见。
保证实用。如果程序里面有一些例程,也是已经经过测试可以拿来就用的;实际上
是我早年的一些产品的程序的一部分;不好意思,都是汇编的。
写的时间只有周末会多一些,可以保证做到一周一课;尽量能够提前,但是这要看
看工作忙不忙了。
坊间有一些参考书,准备今天上午到北京中发市场转了一圈,我记得以下参考书目
较好:
1. 周航慈:《单片机程序设计》
2. 徐涵芳:《MCS-51单片机结构与设计》
3. 何立民:《......》
有了这些就基本够用了;其它的很多都是资料的翻译;如果英文不好,可以看看;
英文好的话,可以不必了,省电钱买开发系统和编程器、开发板什么的,需要什么
资料直接下载PDF文件好了。
要想成为电子工程师,需要宽带,在家里安装包月的adsl或者长宽,绝对值得。
实际上,网络上什么都有了,就是一个网络数据库,要好好利用。
网上自有黄金屋,网上自有颜如玉……
第二课 基本的芯片和分立器件
2.1 简述
有必要对以下系列的芯片和分立器件进行介绍。
除了单片机作为控制器的核心外,作为一个产品,由很多东西构成;所以,在讲系
统之前,先将这些零零碎碎的东西一并交待。就好像一栋房子,有各种各样的构件
组成,下面的这些东东就像砖瓦一样,没有不行。
2.2 74系列芯片
74系列的芯片的下载地址:
http://www.dainau.com/TTLDATASHEET.htm
http://www.100y.com.tw/asp/class36_40.htm
http://www.mcu51.com/download/digitpdf/74xx/default.htm
74系列的芯片是古老的一族,大部分的芯片现在均已不用了,但是,实际上,在目
前的系统中,还能看到一些芯片,有些芯片现在还在系统中使用,例如:
1、 7404 – 6个反相门
下载地址:
http://www.hqew.com/document/detail.asp?pdid=125533
将输入的TTL逻辑反相,如:0->1,1->0
2、 7407 – 6个集电极开路门
下载地址:
http://www.hqew.com/document/detail.asp?pdid=125518
由于集电极开路门可以外接高电压,可以最高到DC30V,电流最大到39mA,通常我
用它驱动8字数码管和继电器等大电流的负载;开路门内部结构是达林顿管的,输
出的逻辑是正的;
与其类似的芯片是7406,只不过是反相开路门。
3、 74LS573与74LS373 – 8 数据锁存器
74LS373下载地址:
http://www.hqew.com/document/detail.asp?pdid=129171
74LS573下载地址:
http://www.yddz.net/yddzsourse/pdf/74hc573.pdf
引入几个概念:
1. 真值表
参见74LS373的PDF的第2页:
Dn LE OE On
H H L H
L H L L
X L L Qo
X X H Z
这个就是真值表,表示这个芯片在输入和其它的情况下的输出情况。
每个芯片的数据手册(datasheet)中都有真值表。
布尔逻辑比较简单,在此不赘述;
2. 高阻态
就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以
多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯
片烧毁;
高阻态的概念在RS232和RS422通讯中还可以用到。
3. 数据锁存
当输入的数据消失时,在芯片的输出端,数据仍然保持;
这个概念在并行数据扩展中经常使用到。
4. 数据缓冲
加强驱动能力。74LS244/74LS245/74LS373/74LS573都具备数据缓冲的能力。
OE:output_enable,输出使能;
LE:latch_enable,数据锁存使能,latch是锁存的意思;
Dn:第n路输入数据;
On:第n路输出数据;
再看这个真值表,意思如下:
第四行:当OE=1是,无论Dn、LE为何,输出端为高阻态;
第三行:当OE=0、LE=0时,输出端保持不变;
第二行第一行:当OE=0、LE=1时,输出端数据等于输入端数据;
结合下面的波形图,在实际应用的时候是这样做的:
a. OE=0;
b. 先将数据从单片机的口线上输出到Dn;
c. 再将LE从0->1->0
d. 这时,你所需要输出的数据就锁存在On上了,输入的数据在变化也影响不到输
出的数据了;实际上,单片机现在在忙着干别的事情,串行通信、扫描键盘……单
片机的资源有限啊。
在单片机按照RAM方式进行并行数据的扩展时,使用movx @dptr, A这条指令时,这
些时序是由单片机来实现的。
后面的表格中还有需要时间的参数,你不需要去管它,因为这些参数都是几十ns级
别的,对于单片机在12M下的每个指令周期最小是1us的情况下,完全可以实现;如
果是你自己来实现这个逻辑,类似的指令如下:
mov P0,A ;将数据输出到并行数据端口
clr LE
setb LE
clr LE ;上面三条指令完成LE的波形从0->1->0的变化
74ls573跟74LS373逻辑上完全一样,只不过是管脚定义不一样,数据输入和输出端
各在一侧,PCB容易走线;所以大家都喜欢使用这个芯片。
4、 74LS244 – 数据缓冲器
下载地址:
http://www.mcu51.com/download/digitpdf/74xx/74F244.pdf
数据输出能力比较强,输出电流可以到40mA以上;
4个缓冲器分成2组,具有高阻态控制端口
5、 74LS245 – 总线缓冲器
http://www.mcu51.com/download/digitpdf/74xx/74F245.pdf
双向数据接口,通常在ISA板卡上可以看到;
早期的51系统中,为了扩展RAM、eprom、A/D、D/A、I/O等经常可以看到这个片子
;
为了增强驱动能力,有时是为了隔离输入和输出,主要是布线方便,象74LS573一
样,输入、输出在一侧,经常用到这个片子
6、 74LS138 – 三-八译码器
http://www.mcu51.com/download/digitpdf/74xx/74F138.pdf
在早期的51系统的扩展中,作为地址选通的片子,可以经常看到。
另外一个类似的芯片是74LS154,是4-16译码器,现在更是少见了。
有兴趣的可以研究一下何立民的经典著作中的有关章节。
知道有这么一个芯片就可以了。
2.3 CD4000系列
CD4000系列的芯片,除了跟74系列的电气特性有所区别外,例如:
1) 电压范围宽,应该可以工作在3V~15V,输入阻抗高,驱动能力差外,跟74系列
的功能基本没有区别;
2) 输入时,1/2工作电压以下为0,1/2工作电压以上为1;
3) 输出时,1=工作电压;0=0V
4) 驱动能力奇差,在设计时最多只能带1个TTL负载;
5) 如果加上拉电阻的话,至少要100K电阻;
6) 唯一现在使用的可能就是计数器,CD4060的计数器可以到14级二进制串行计数/
分频器,这个74系列的做不到这么高;
下载地址:
http://www.100y.com.tw/asp/class36_40.htm
http://www.100y.com.tw/pdf_file/CD4060.PDF
2.4 ULN2003/ULN2008
它的内部结构也是达林顿的,专门用来驱动继电器的芯片,甚至在芯片内部做了一
个消线圈反电动势的二极管。ULN2003的输出端允许通过IC 电流200mA,饱和压降
VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算
。采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR)
等外接控制器件,也可直接驱动低压灯泡。
经常在工控的板卡中见到这个芯片。
有个完全一样的型号:MC1413,不过现在好像不怎么见到这个型号了,但是管脚与
2003完全兼容。
ULN2003可以驱动7个继电器;ULN2008驱动8个继电器。
ULN2003下载地址:
http://www.hqew.com/document/detail.asp?pdid=148212
ULN2008下载地址:
没有找到。奇怪啊。
2.5 光耦
光耦是做什么用的?光耦是用来隔离输入输出的,主要是隔离输入的信号。
在各种应用中,往往有一些远距离的开关量信号需要传送到控制器,如果直接将这
些信号接到单片机的I/O上,有以下的问题:
1) 信号不匹配,输入的信号可能是交流信号、高压信号、按键等干接点信号;
2) 比较长的连接线路容易引进干扰、雷击、感应电等,不经过隔离不可靠
所以,需要光耦进行隔离,接入单片机系统。
常见的光耦有:
1) TLP521-1/ TLP521-2/ TLP521-4,分别是1个光耦、2个光耦和4个光耦,HP公司
和***的东芝公司生产。
下载地址:
http://www.100y.com.tw/pdf_file/TLP521-1-2,4.PDF
发光管的工作电流要在10mA时,具有较高的转换速率;
在5V工作时,上拉电阻不小于5K,一般是10K;太小容易损坏光耦;
2) 4N25/4N35,motorola公司生产
下载地址:
http://www.100y.com.tw/pdf_file/4N25-8,35-7,H11A1-5.PDF
隔离电压高达5000V;
3) 6N136,HP公司生产
下载地址:
http://www.100y.com.tw/pdf_file/6N135-6.PDF
要想打开6N136,需要比较大的电流,大概在15~20mA左右,才能发挥高速传输数据
的作用。
如果对速率要求不高,其实TLP521-1也可以用,实际传输速率可以到19200波特率
。
选择光耦看使用场合,tlp521-1是最常用的,也便宜,大概0.7~1元;
要求隔离电压高的,选用4N25/4N35,大概在3元左右;
要求在通讯中高速传输数据的,选用6N136,大概在4元左右。
光耦应用的原理框图如下所示:
1. 输入干接点隔离
2. 输入TTL电平隔离
3. 输入交流信号隔离
4. 输出RS232信号隔离
5. 输出RS422信号隔离
光耦除了隔离数字量外,还可以用来隔离模拟量。将在今后的章节中描述。
2.6 三极管
2.7 光电管
2.8 电容
2.9 电阻
2.10 固态继电器
2.11 继电器
2.12 变压器与整流桥
2.13 三端稳压器
2.14 开关电源芯片
2.15 封装知识、芯片批号等
2.16 接插件
2.17 器件选购的知识
2.6 三极管
2.6.1 三极管的4种工作状态
1) 饱和导通状态
饱和导通=0
2) 截止状态
饱和导通=1
3) 线性放大状态
作为低频放大器时使用,具体的可参见有关电子线路的书籍;
4) 非线性工作状态
在无线电通信系统中,作为混频器等使用。具体的可参见有关电子线路的书籍;
愚记得南京工学院也就是现在的东南大学在80年代初期有一套《电子线路》5本,
是电子专业的书籍,比较难懂;现在,即使是在电子专业的学生中,也应该降低了
对三极管的哪些复杂的参数的要求了吧;在实际使用时,即使是模拟电路、非线性
电路,也都是集成电路了,谁还使用三极管自己做呢?如果万一需要,现学也来得
及。这套书很强的。编写人在那个年代肯定都是牛人。
学三极管这些参数很繁琐的,要是现在的非电子类的大学生或者大专生们还学这些
玩意,我只能说是学校在误人子弟了。
好多学校都在扩招,很多学生念了4年下来,学了一堆过时的理论,跟实际的东西
一点没有接轨,不知道7407是干什么用得,不知道三极管的几个状态;我只能无话
可说。
所以,念了4年下来,跟企业的需求还有一段距离,还需要从头来过;聪明的学生
赶紧抓住机会去学习,去实习,这样,还可以赶紧补上实际应用的这一课。
言归正传。
参见下图:
当单片机的口线输出电平为1时,三极管的be结导通,ce结导通,输出的电压值为
0V;
当单片机的口线输出电平为0时,三极管的be结不导通,ce结截止,输出的电压值
为5V;
在这种数字电路的应用中,相当于三极管是一个反相开路门。
计算是否导通,公式如下:
I=B(放大倍数,希腊字母的贝塔)×Ibe
当Ice<I时,即为饱和导通;
相差越大,饱和程度越深,Vce越小,三极管的输出内阻越小;
这个概念要用到光电管中。
设计使用时大概算算,心里有个数;在电路板上试试,行的通,那就是它了。可以
测量Vce值,至少要小于0.1V就可以了。
常用的PNP三极管是2N5551,驱动40mA的LED(电压在24V)、蜂鸣器等均没有问题
。
2.6.2 三极管的具体应用
实际上,已经有象7407、ULN2003可以取代三极管在数字电路中的作用;但是,有
时是受到PCB面积的制约,有时是为了降低成本,有时是因为布局方便,在1~2个输
出点时,还是可以使用三极管来做驱动的。
例如:驱动一个蜂鸣器;往往系统中的蜂鸣器跟其它驱动设备,继电器等,距离较
远;这时,没有必要使用一片7407,或者ULN2003来驱动;驱动的接口如下:
Re:从51初学者到电子工程师(转帖)
2.7 光电管
我这里所谓的光电管有2种:
1) 反射型光电管
2) 对射型光电管
这2种产品在市场上又可分为调理好的和没有调理好的;
这2种光电管在电子产品世界和电子技术应用杂志上都有大量的广告。随便找一本
都有。
我所说的调理好的指的是内部已经加了限流电阻和输出的放大驱动电路了。它的特
点是只有3根线,电源2根,输出信号一根,TTL电平的;但是,有时受到某种限制
,需要使用没有调理好的,怎么办呢?
参见下图:光电管原理框图
这种没有调理好的光电管在使用时,需要做一块小的电路板,在发光管加限流电
3. 编程要学啥要掌握哪些可以找工作
可以先从《微机原理与汇编技术》学习,有了基本的计算机基础,你才会对整个计算机编程的原理以及来龙去脉有个大致的了解。
然后把C语言学好,可以不要求精通,但是一定要掌握的全面一点。C语言的编码软件很多,比如borland C,网上很多,网络可以找到。
可以接触Borland C Builder V6.0。学习的教材有 “C++程序设计谭浩强100%25完整·清华大学”,网上有其电子书。第三部学好C++之后,可以陆续浏览下C#,VB之类的高级语言。
把握好心态,准备学习电脑编程。了解一下电脑发展史,如果想学汇编的话就需要大量的记忆,适合记性好,而且很用功的。
首先会教你C语言的编程格式和注意事项,记住一个标点符号都不能错。其次就开始考验你的数学功底,开始编一下简单的逻辑程序,再然后就要考验你的思路。
大概一个月左右学习完C语言,才开始真正学习编程,这时在C语言牢靠的功底下一切就简单多了,只是换了一个编程格式和其它编程工具。
4. 西门子PLC用什么语言编程,用梯形图么还是什么语言
西门子PLC支持以下编程语言,包括梯形图:
1、顺序功能图
西门子STEP7的编程语言为图形。这是在其他编程语言之上的一种图形语言,用于编程顺序控制程序(如机械手控制程序)。在撰写本文时,该过程被分为几个连续的步骤,每个步骤包括控制输出的动作,并且通过改变条件来控制从一个步骤到另一个步骤的过渡,这特别适合于生产和制造过程。
2、梯形图
这是应用最广泛的PLC编程语言,由于它与继电器相似,特别适用于数字逻辑控制。梯形图由触点、线圈和用方框表示的指令组成。
触点代表逻辑输入条件,线圈代表逻辑操作结果,常用指示灯、开关和内部标志。指令框用于表示附加指令,如计时器、计数器或数学运算。在程序中,最左边的是主信号流,它总是从左向右流动。
3、语句表
是一种类似于微机汇编语言的文本编程语言,由若干语句组成。语言表适合有经验的程序员使用。可以实现一些梯形图无法实现的功能。
4、功能块图
功能块图使用类似于布尔数的图形逻辑符号来表示控制逻辑,指令块表中显示了一些复杂的函数,适用于具有数字电路基础的程序员。
(4)电子负载编程开发用什么语言扩展阅读:
西门子PLC安装及注意事项:
1、辅助电源功率小,只能驱动小功率设备(光电传感器等);
2、一般来说,PLC有一定数量的占有点(即空地址终端),不接电线;
3、PLC存在I/O响应延迟的问题,特别是在快速响应设备中;
4、输出有继电器型、晶体管型(高速输出时最好选择),输出可直接带轻载(LED指示灯等);
5、输入或断开时间应大于PLC扫描时间;
6、由于PLC输出回路无保护,所以外部回路应串联使用熔断器等保护装置,防止PLC因负载短路而损坏;
7、不要将交流电源线连接到输入端,以免烧毁可编程逻辑控制器;
8、接地端子应单独接地,不得与其他设备接地端子串接,接地线切割面不小于2mm2;
9、输入、输出信号线应尽量分开,不得与电源线在同一管线内或捆绑在一起,以免干扰信号和误操作;信号传输线应采用屏蔽线,屏蔽线应接地;为保证信号可靠,输入、输出线一般控制在20米以内。
参考资料来源:网络-西门子PLC
5. java可以开发什么项目
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等领域
1、Java SE(Java Platform,Standard Edition)。Java SE 以前称为J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。Java SE 包含了支持Java Web 服务开发的类,并为Java Platform,Enterprise Edition(Java EE)提供基础。
2、Java EE(Java Platform,Enterprise Edition)。这个版本以前称为J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和Web 2.0 应用程序。
3、Java ME(Java Platform,Micro Edition)。这个版本以前称为J2ME,也叫K-JAVA。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能
4、Android是第一个内置支持Java的操作系统,Android应用程序使用Java语言编写。Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实。另外一方面,3G应用往往会和企业级应用相互结合。因此,在3G—Android课程体系中将Android课程与Java EE课程紧密结合,以Android课程为主,以Java EE课程为辅,配合真实的企业级项目,不但可以深入掌握基于Android平台的智能手机开发技术,更重要的是还系统掌握了智能移动终端与Java EE服务器端相结合的诸多领域商业的应用
6. Java开发主要都学些什么内容
学习内容大致可分为以下10点,都是我从动力节点自学教程里学习的时候总结出来的,但java编程日新月异,每天都在变化,即便现在掌握了一些知识也不要骄傲,更要跟上技术发展的步伐,实时更新。
1、Java语言
Java语言体系比较庞大,包括多个模块。从WEB项目应用角度讲有JSP、Servlet、JDBC、JavaBean(Application)四部分技术。
(1)、Java Database Connectivity(JDBC)技术
在Java Web应用开发中,数据库管理系统(RDBMS)的使用是不可缺少的。JDBC(Java Database Connectivity) 是一种用于执行SQL 语句的 Java API。它由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。
简单地说,JDBC 可做三件事:
l 与数据库建立连接,
l 发送SQL 语句,
l 处理结果。
(2)、Servlet技术
Servlet是运行在服务器端的程序,可以被认为是服务器端的applet。servlet被Web服务器(例如Tomcat)加载和执行,就如同applet被浏览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种操作,然后返回结果。
Servlet的主要优点包括
l Servlet是持久的。servlet只需Web服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接)。
l Servlet是与平台无关的。如前所述,servlet是用Java编写的,它自然也继承了Java的平台无关性。
l Servlet是可扩展的。由于servlet是用Java编写的,它就具备了Java所能带来的所有优点。Java是健壮的、面向对象的编程语言,它很容易扩展以适应你的需求。servlet自然也具备了这些特征。
l Servlet是安全的。从外界调用一个servlet的惟一方法就是通过Web服务器。这提供了高水平的安全性保障,尤其是在你的Web服务器有防火墙保护的时候。
l Servlet可以在多种多样的客户机上使用。由于servlet是用Java编写的,所以你可以很方便地在HTML中使用它们。
(3)、JavaServer Pages(JSP)技术
JSP是从Servlet上分离出来的一小部分,简化了开发,加强了界面设计。JSP定位在交互网页的开发。运用Java语法,但功能较Servlet弱了很多,并且高级开发中只充当用户界面部分。JSP容器收到客户端发出的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式响应给客户端。其中程序片段可以是:操作数据库、重新定向网页以及发送 E-Mail 等等,这些都是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP 称为Server-Side Language。
JavaServer Pages的主要优点包括
●一次编写,各处执行(Write Once, Run Anywhere)特性
作为Java 平台的一部分,JavaServer Pages 技术拥有Java语言“一次编写,各处执行”的特点。随着越来越多的供货商将JavaServer Pages 技术添加到他们的产品中,您可以针对自己公司的需求,做出审慎评估后,选择符合公司成本及规模的服务器,假若未来的需求有所变更时,更换服务器平台并不影响之前所投下的成本、人力所开发的应用程序。
● 搭配可重复使用的组件
JavaServer Pages技术可依赖于重复使用跨平台的组件(如:JavaBean或Enterprise JavaBean组件)来执行更复杂的运算、数据处理。开发人员能够共享开发完成的组件,或者能够加强这些组件的功能,让更多用户或是客户团体使用。基于善加利用组件的方法,可以加快整体开发过程,也大大降低公司的开发成本和人力。
● 采用标签化页面开发
Web 网页开发人员不一定都是熟悉Java 语言的程序员。因此,JSP 技术能够将许多功能封装起来,成为一个自定义的标签,这些功能是完全根据XML 的标准来制订的,即JSP 技术中的标签库(Tag Library)。因此,Web 页面开发人员可以运用自定义好的标签来达成工作需求,而无须再写复杂的Java 语法,让Web 页面开发人员亦能快速开发出一动态内容网页。
今后,第三方开发人员和其他人员可以为常用功能建立自己的标签库,让Web 网页开发人员能够使用熟悉的开发工具,如同HTML 一样的标签语法来执行特定功能的工作。
● N-tier 企业应用架构的支持
有鉴于网际网络的发展,为因应未来服务越来越繁杂的要求,且不再受地域的限制,因此,
必须放弃以往Client-Server的Two-tier 架构,进而转向更具威力、弹性的分散性对象系统。由于JavaServer Page 技术是Java 2 Platform Enterprise Edition (J2EE)集成中的一部分,它主要是负责前端显示经过复杂运算后之结果内容,而分散性的对象系统则是主要依赖EJB ( Enterprise JavaBean )和JNDI ( Java Naming and Directory Interface )构建而成。
(4)、JavaBean(Application)应用组件技术
Application是Java应用程序,在WEB项目和一些开发中主要应用JavaBean。它就是Application的一部分,逻辑运算能力很强,能极大的发挥Java语言的优点。JavaBean 被称为是Java 组件技术的核心。JavaBean 的结构必须满足一定的命名约定。JavaBean能提供常用功能并且可以重复使用,这使得开发人员可以把某些关键功能和核心算法提取出来封装成为一个组件对象,这样就增加了代码的重用率和系统的安全性。
高级的WEB项目会应用到以上所有技术,它们之间联合使用和协作开发会提高开发的效率和系统的性能。
2、面向对象分析设计思想
Java语言是完全面向对象的语言,所以在项目设计时会有很大的帮助,在设计时应尽量舍弃以往的面向过程的设计方式。
在分析项目业务关系的时候,应用一些UML(Unified Modeling Language)图,例如常用的用例图(use case diagram),类图(class diagram),时序图(sequence diagram)等等,会有很大的帮助,这样能尽快找出业务逻辑主要面对的对象,然后对每个对象进行行为划分,最后再实现对象之间的集成和通信。
3、设计模式和框架结构
Java从语言角度来讲不是很难,但是从整体设计角度来讲我们还需要了解一些高级应用框架。如果要设计一个良好的框架结构,单单只掌握Java语言远远不够。这就涉及到一个设计模式,还有和设计模式相关的一些知识。
设计模式在Java项目实施过程更是重中之重。主要在与两层的设计模式、三层的设计模式和N层的设计模式。它直接决定着项目的应用、部署和实际开发设计。
在普通的WEB项目中很多采用两层的开发结构。JSP+Servlet或JSP+JavaBean。当对开发要求高的项目中使用很多的还是MVC的三层开发结构,也就是JSP+Servlet+JavaBean。它能分有效的分离逻辑开发,使开发人员能专注于各自的开发。同时也能时整个开发结构流程更清晰,但是需要比较高的开发配合度。
在项目中,我们经常使用著名的Model-View-Controller(MVC)架构。MVC架构是随着smalltalk language语言的发展提出的,它是一个著名的用户界面设计架构。经典的MVC架构把一个组件(可认为是整个应用程序的一个模块)划分成三部分组 Model管理这个模块中所用到的数据和业务逻辑。而View 管理模块如何显示给用户,Controller 决定如何处理用户和该模块交互式时候产生的事件如用户点击一个按钮等。
4、XML语言
在服务器和设计模式结构中会应用到自定义文件,而且在应用高级设计时也会定义自用的标签,现在流行的是用XML去定义配置,所以XML语言应该有一定掌握。
当前,Java 2平台企业版(J2EE)架构在厂商市场和开发者社区中倍受推崇。作为一种工具,可扩展标记语言(XML)简化了数据交换、进程间消息交换这一类的事情,因而对开发者逐渐变得有吸引力,并开始流行起来。自然,在J2EE架构中访问或集成XML解决方案的想法也很诱人。因为这将是强大系统架构同高度灵活的数据管理方案的结合。
XML的应用似乎是无穷无尽的,但它们大致上可以分为三大类:
1、简单数据的表示和交换(针对XML的简单API(SAX)和文档对象模型(DOM)语法解析,不同的文档类型定义(DTDs)和概要(schemas))
2、用户界面相关、表示相关的上下文(可扩展样式表语言(XSL),可扩展样式表语言转换(XSLT))
3、面向消息的计算(XML-RPC(远程过程调用),基于SOAP协议的Web 服务(Web Services),电子化业务XML(ebXML))
5、网页脚本语言
为了提高WEB项目的整体性能,提高人机交互的友好界面,网页的脚本语言是很有用处的,有的时候可以解决很大的难题或提高程序的性能和应用性。
网页脚本语言的执行都是在客户端执行的,速度很很快,并且大多的操作与服务器没有交互运算,所以在一些应用中非常理想。在设计WEB项目的应用中,网页的脚本语言起着不能忽视的作用,所以如果设计WEB项目的应用中,对JavaScript应有一定的了解。
JavaScript是一种基于对象(Object Based)和事件驱动(Event Driven)并具有安全性能(Secure)的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。