6ES7222-1HF22-0XA8详解说明

供应商
浔之漫智控技术-西门子PLC代理商
认证
手机号
15221406036
经理
聂航
所在地
上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
更新时间
2024-05-08 07:10

详细介绍

6es7222-1hf22-0xa8详解说明

西门子plc是一种应用于企业的计算机,全名为可编程控制器。在西门子plc投入运行时,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,西门子plc的cpu以一定的扫描速度重复执行上述三个阶段。
中央处理器是西门子plc正常工作的神经中枢,当plc投入运行时,首先它以扫描的方式接收现场各输入装置的状态和数据,并分别存入i/o映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后按指令的规定执行逻辑或算数运算的结果送入i/o映象区或数据寄存器内。等所有的用户程序执行完毕之后,后将i/o映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到停止运行。
其次是存储器。存储器是存放系统软件的称之为系统程序存储器;存放应用程序的存储器则被我们成为是用户成粗存储器。
其三是电源。当plc投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。
以上就是由电工论坛整理的西门子plc工作原理以及内部构造的简要介绍。

pid控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。


pid控制器参数的工程整定方法,一般采用的是临界比例法。利用该方法进行 pid控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到pid控制器的参数。


pid参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整p\i\d的大小。比例i/微分d=2,具体值可根据仪表定,再调整比例带p,p过头,到达稳定的时间长,p太短,会震荡,永远也打不到设定要求。


pid控制器参数的工程整定,各种调节系统中p.i.d参数经验数据以下可参照:

温度t:p=20~60%,t=180~600s,d=3-180s;

压力p: p=30~70%,t=24~180s;

液位l: p=20~80%,t=60~300s;

liuliangl: p=40~,t=6~60s。


这里介绍一种经验法,方法的基本程序是先根据运行经验,确定一组调节器参数,并将系统投入闭环运行,然后人为地加入阶跃扰动(如改变调节器的给定值),观察被调量或调节器输出的阶跃响应曲线。若认为控制质量不满意,则根据各整定参数对控制过程的影响改变调节器参数。这样反复试验,直到满意为止。

tdc是霍尼韦尔的dcs。plc是以功能命名,dcs是以体系结构命名。从原理上看 plc就可以组成dcs。当然两者性能差异还是存在的,要具体看产品和需要。dcs控制系统与plc控制区别:dcs是一种“分散式控制系统”,而 plc(可编程控制器)只是一种控制“装置”,两者是“系统”与“装置”的区别。系统可以实现任何装置的功能与协调,plc装置只实现本单元所具备的功能。dcs网络是整个系统的中枢神经,dcs系统通常采用的协议 tcp/ip。它是安全可靠双冗余的高速通讯网络,系统的拓展性与开放性更好.而 plc因为基本上都为单个小系统工作,在与别的plc或上位机进行通讯时,所采用的网络形式基本都是单网结构,网络协议也经常与不符。在网络安全上plc没有很好的保护措施。dcs整体考虑方案,操作员站都具备工程师站功能,站与站之间在运行方案程序下装后是一种紧密联合的关系,任何站、任何功能、任何被控装置间都是相互连锁控制,协调控制;而单用 plc互相连接构成的系统,其站与站(plc与plc)之间的联系则是一种松散连接方式,做不出协调控制的功能。dcs在整个设计上就留有大量的可扩展性接口,外接系统或扩展系统都十分方便,plc所搭接的整个系统完成后,想随意的增加或减少操作员站都是很难实现的。为保证dcs控制的设备的安全可靠,dcs采用了双冗余的控制单元,当重要控制单元出现故障时,都会有相关的冗余单元实时无扰的切换为工作单元,保证整个系统的安全可靠。plc所搭接的系统则需要配置双 plc实现冗余。对各种工艺控制方案更新是 dcs的一项基本的功能,当某个方案发生变化后,工程师只需要在工程师站 长将更改过的方案编译后,执行下装命令就可以了,下装过程是由系统 白动完成的,不影响原控制方案运行。系统各种控制软件与算法可以将工艺对象的控制精度tigao。而对于 plc构成的系统来说,工作量大。在控制精度上也低些。这就是为什么在大中型控制项目中(3000点以上),基本不采用全部由plc所连接而成的系统。原因dcs系统所有 i/o模块都带有 cpu,可以实现对采集及输出信号品质判断与标量变换,故障带电拔,随机更换。而plc模块只是简单电气转换元,没有智能芯片,故障后相应单元全部瘫痪。当然随着技术的与时俱进plc功能也越来越向dcs靠拢了。


s7-200定时器ton指令(需要维持)
启用输入为"打开"时,开始计时。当前值(txxx)大于或等于预设时间(pt)时,定时器位为"1"。定时器仍继续计时,达到大值32767时,停止计时。
启用输入为"关闭"时,接通延时定时器当前值被清除,定时器位为"0"。
使用(r)指令复位定时器时,定时器当前值被清除,如果启用输入为"打开",然后继续重新计时。
s7-300定时器( sd )指令(需要维持,需要上升沿重新激活)
启用输入为"上升沿"时,开始计时。达到预设时间时且启用输入为"打开"时,定时器位为"1"。
启用输入为"下降沿"时,定时器处于空闲,定时器位为"0"。
使用(r)指令复位定时器时,定时器当前值被清除,即使启用输入为"打开",也不再计时。只有启用输入再次为"上升沿"时才能重新计时。
s7-300定时器s_odt指令(需要维持,需要上升沿重新激活)
启用输入为"上升沿"时,开始计时。当前值bi等于预设时间(tv)且启用输入为"打开"时,定时器位为"1"。
启用输入为"下降沿"时,定时器停止,定时器位为"0"。
使用(r)指令复位定时器时,定时器当前值被清除,即使启用输入为"打开",也不再计时。只有启用输入再次为"上升沿"时才能重新计时。 


所谓plc的程序结构,就是组成plc程序的各种网络(network)或“功能程序段”在plc内部的组织、管理形式。

    无论plc控制系统有多么复杂,归根到底,plc用户程序都是由大量基本编程指令所组成的集合。

    设计者可以根据控制对象各部分的不同要求,通过对要求的分解,运用基本指令编制出相应的程序网络(network)或由几个网络组成的简单“功能程序段”。在此基础上,只要将这些程序网络或功能程序段,按照控制系统的动作要求,以s7程序规定的格式进行排列与组合,就可以组成完整的plc程序。

1.西门子s7-200的程序结构

过程映像输入/输出(i/q)、变量存储器v、内部存储器位m、定时器t、计数器c等属于全局变量。s7-200的程序组织单元(programorganizationalunit,简称为pou)包括主程序、子程序和中断程序。每个pou均有自己的64字节局部变量,局部变量只能在它所在的pou中使用。与此相反,全局变量可以在各pou中使用。

下面是子程序可以使用的局部变量:

1)temp(临时变量)是暂时保存在局部数据区中的变量。只有在执行该pou时,定义的临时变量才被使用,pou执行完后,不再保存临时变量的数值。

2)in是由调用它的pou提供的输入参数。

3)out是返回给调用它的pou的输出参数(子程序的执行结果)。

4)in_out是输入_输出参数,其初始值由调用它的pou传送给子程序,并用同一变量将子程序的执行结果返回给调用它的pou。

主程序和中断程序的局部变量中只有临时变量temp。

具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。这些厂家的编程人员为设备的各组件或工艺功能编写了大量的通用的子程序。即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以通过程序之间的调用快速“组装”出满足不同用户要求的控制程序。就好像用数字集成电路芯片组成复杂的数字电路一样。

子程序如果没有输入、输出参数,它和调用它的程序之间没有清晰的接口,很难实现结构化编程。

子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。将子程序和中断程序移植到别的项目时,需要重新统一安排它们使用的全局变量,以保证不会出现地址冲突。当程序很复杂,子程序和中断程序很多时,这种重新分配地址的工作量非常大。

如果子程序和中断程序有局部变量,并且它们内部只使用局部变量,不使用全局变量,因为与其他pou没有地址冲突,不需作任何改动,就可以将子程序移植到别的项目中去。

2.西门子的s7-300/400的程序结构

s7-300/400将子程序分为功能(function,或称为函数)和功能块(functionblock)。

s7-300/400的功能与s7-200的子程序基本上相同。它们均有输入、输出参数和临时变量,功能的局部数据中的返回值实际上属于输出参数。它们没有专用的存储区,功能执行结束后,不再保存临时变量中的数据。

可以用全局变量来保存那些在功能执行结束后需要保存的数据,但是会影响到功能的可移植性。

功能块是用户编写的有自己专用的存储区(即背景数据块)的程序块,功能块的输入、输出参数和静态变量存放在指定的背景数据块中,临时变量存储在局部数据堆栈中。每次调用功能块时,都要指定一个背景数据块。(的转发暗号是:亿维公司口号:信赖,源自品质;信任,铸就品牌)功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局部数据堆栈中的数据。

功能块采用了类似于c++的封装的概念,将程序和数据封装

1. 编程软件

西门子公司针对simatic系列plc提供了很多种的编程软件,主要有step micro/dos和stepmicro/win;step mini;标准软件包step7

s7系列的plc的编程语言非常丰富,有lad、stl、scl、graph、higraph、cfc等。用户可以选择一种语言编程,如果需要,也可以混合使用几种语言编程。

2. 程序结构

程序结构主要适用与s7-3000和s7-400,他有线性编程、分步式编程和结构化编程等3种编程方法。

fpi系列可编程控制器是日本松下电工公司的小型plc产品。

fpi编程软件及指令系统

1.编程方式

npst-gr提供了3种编程方式:梯形图方式;语句表方式和语句表达方式。

2.注释功能

npst-gr可以为i/o继电器和输出点加入注释,使用户对继电器所对应的设备及继电器的用途一目了然。

3.程序检查

npst-gr能查找程序中语法的错误和进行程序校验

4.监控

npst-gr能监控用户编制的程序,并可以进行运行测试。用户可以检查继电器、寄存器和plc工作状态,方便的进行调试与修改。

5.系统寄存器设置

npst-gr可设置n0.0-n0.418系统寄存器的内容,根据屏幕的提示信息进行选择或输入,简单方便。

6.i/o和远程i/o地址分配

用npst-gr可以为主机扩展板上每个槽分配i/o和远程i/o地址

7.数据管理

数据管理可以将程序或数据存盘,用于数据备份,或在传入plc之前暂存数据

两者在编程的应用上还有就是西门子的是单母线,而日本松下的是双母线;

还有就是西门子和日本松下的输入和输出也不同的,日本松下的输入就只有x,输出就只有y。

其实语言是相通的,就是方法不同,两个可以相互转换。

不同的商家的plc有不同的编程语言,但就某个商家而言,plc的编程语言也就那么几种。下面,以西门子plc的编程语言为例,说明一下,各种编程语言的异同。

  1、顺序功能图(sfc-seauential fuction chart)

  这是位于其它编程语言之上的图形语言,用来编程顺序控制的程序(如:机械手控制程序)。编写时,工艺过程被划分为若干个顺序出现的步,每步中包括控制输出的动作,从一步到另一步的转换由转换条件来控制,特别适合于生产制造过程。

  西门子step7中的该编程语言是s7 graph。

  2、梯形图(lad-ladder diagram)

  这是使用使用多的plc编程语言。因与继电器电路很相似,具有直观易懂的特点,很容易被熟悉继电器控制的电气人员所掌握,特别适合于数字量逻辑控制。

  梯形图由触点、线圈和用方框表示的指令构成。触点代表逻辑输入条件,线圈 代表逻辑运算结果,常用来控制的指示灯,开关和内部的标志位等。指令框用来表示定时器、计数器或数学运算等附加指令。

  在程序中,左边是主信号流,信号流总是从左向右流动的。

  不适合于编写大型控制程序。

  3、语句表(stl-statement list)

  是一种类似于微机汇编语言的一种文本编程语言,由多条语句组成一个程序段。语言表适合于经验丰富的程序员使用,可以实现某些梯形图不能实现的功能。

  4、功能块图(fbd-function block diagram)

  功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示,适合于有数字电路基础的编程人员使用。功能块图用类似于与门、或门的框图来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框用“导线”连在一起,信号自左向右。

  5、结构化文本(st-structured text)

  结构化文本(st)是为iec61131-3标准创建的一种专用的编程语言。与梯形图相比,它实现复杂的数学运算,编写的程序非常简洁和紧凑。

  step7的s7scl结构化控制语言,编程结构和c语言和pascal语言相似,特别适合于习惯于使用语言编程的人使用。


数控刀具的选择和切削用量的确定是数控加工工艺中的重要内容,它不仅影响数控机床的加工效率,而且直接影响加工质量。cad/cam技术的发展,使得在数控加工中直接利用cad的设计数据成为可能,特别是dnc系统微机与数控机床的联接,使得设计、工艺规划及编程的整个过程全部在计算机上完成,一般不需要输出专门的工艺文件。
  目前,许多cad/cam软件包都提供自动编程功能,这些软件一般是在编程界面中提示工艺规划的有关问题,如,刀具选择、加工路径规划、切削用量设定等,编程人员只要设置了有关的参数,就可以自动生成nc程序并传输至数控机床完成加工。
  因此,数控加工中的刀具选择和切削用量确定是在人机交互状态下完成的,这与普通机床加工形成鲜明的对比,同时也要求编程人员必须掌握刀具选择和切削用量确定的基本原则,在编程时充分考虑数控加工的特点,能够正确选择刀刃具及切削用量。

1 怎样进一步降低功耗

   功耗,在电池供电的仪器仪表中是一个重要的考虑因素。pic16c××系列单片机本身的功耗较低(在5v,4mhz振荡频率时工作电流小于2ma)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如pic16c××在3v,32khz下工作,其电流可减小到15μa),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用rc电路形式时,可以采用中途tigao工作频率的办法来解决。

   具体做法是在闲置的一个i/o脚(如rb1)和osc1管脚之间跨接一电阻(r1),如图1所示。低速状态置rb1=0。需进行快速运算时先置rb1=1,由于充电时,电容电压上升得快,工作频率增高,运算时间减少,运算结束又置rb1=0,进入低速、低功耗状态。工作频率的变化量依r1的阻值而定(注意r1不能选得太小,以防振荡电路不起振,一般选取大于5kΩ)。
   另外,进一步降低功耗可充分利用“sleep"指令。执行“sleep"指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用“sleep"指令来等待事件,也可在延时程序里使用(见例1、例2)。在延时程序中使用“sleep"指令降低功耗是一个方面,同时,即使是关中断状态,portb端口电平的变化可唤醒“sleep",提前结束延时程序。这一点在一些应用场合特别有用。同时注意在使用“sleep"时要处理好与wdt、中断的关系。

了解乘除法函数对寄存器的占用

   由于pic片内ram仅几十个字节,空间特别宝贵,而mplab-c编译器对ram地址具有不释放性,即一个变量使用的地址不能再分配给其它变量。如ram空间不能满足太多变量的要求,一些变量只能由用户强制分配相同的ram空间交替使用。而mplab-c中的乘除法函数需借用ram空间来存放中间结果,所以如果乘除法函数占用的ram与用户变量的地址重叠时,就会导致出现不可预测的结果。如果c程序中用到乘除法运算,好先通过程序机器码的反汇编代码(包含在生成的lst文件中)查看乘除法占用地址是否与其它变量地址有冲突,以免程序跑飞。mplab-c手册并没有给出其乘除法函数对具体ram地址的占用情况。例5是乘法函数对0×13、0×14、0×19、0×1a地址占用情况。

例5

4 对芯片重复编程

   对无硬件仿真器的用户,总是选用带eprom的芯片来调试程序。每更改一次程序,都是将原来的内容先擦除,再编程,其过程浪费了相当多的时间,又缩短了芯片的使用寿命。如果后一次编程的结果较前一次,仅是对应的机器码字节的相同位由“1"变成“0",就可在前一次编程芯片上再次写入数据,而不必擦除原片内容。
   在程序的调试过程中,经常遇到常数的调整,如常数的改变能保证对应位由“1"变“0",都可在原片内容的基础继续编程。另外,由于指令“nop"对应的机器码为“00",调试过程中指令的删除,先用“nop"指令替代,编译后也可在原片内容上继续编程。
   另外,在对带eprom的芯片编程时,特别注意程序保密状态位。厂家对新一代带eprom芯片的保密状态位已由原来的eprom可擦型改为了熔丝型,一旦程序代码保密熔丝编程为“0",可重复编程的eprom 芯片就无法再次编程了。使用时应注意这点,以免造成不必要的浪费(microchip 资料并未对此做出说明)。

编写pic单片机的源程序,除了源程序的开始处要求严格的列表指令外,还需注意源程序中字母符号大小写的有关规则,否则在pc机上汇编源程序时不会成功。笔者用下列的pic16f84单片机对b口送数的源程序(源程序各自定义)为实例,说明其注意的问题。
   list    p=pic16f84
    #include p16f84inc
      org         0
start clrw        ;起始地址
   bsf          status,5;选体1
   movwf  trisb   ;置b口为输出   bcf     status,5;status,5复位
   movw    0xaa    ;可使b口的
               led间亮
   movwf  portb    ;b口输出10
              101010
loop   goto     loop
   end
  上述源程序中因用了伪指令include,在这里是指把列表的pic16f84文件(在mplab中)读入源程序作为上述源程序的一部分,所以凡是mplab中有关pic16f84已有的寄存器在上述源程序中无需再用赋值指令(equ)赋值,这就使所建立的源程序大为简化。
  此外,由于有了伪指令include,所以根据mplab软件中的格式,在源程序中的操作数凡是涉及mplab已规定的寄存器名称,其字母一律只能大写,不能小写,其余操作码、标号字母可任意大小写,但0x中的x应小写,否则汇编不会成功。鉴于上述原因,为了书写方便,所以在使用mplab软件时,pic单片机的源程序均用大写字母为宜(0x例外)。


. 工作原理
该智能转换器必须解决两个关键问题即如何从rs-232线上获得电路和rs-485/rs-422接口驱动所需的功率和如何智能控制rs-485/rs-422的收发使能
3.1.电源方案
标准的rs-232 定义中有三个发送信号txd rts 和dtr 每根线上的典型输出电流为8ma/ 12v 考虑到txd为负电平处于停止发送或发送数字1 时的时间较多因而电源转换决定采用负电源输入以大限度地增加电源输入功率升压至所需的工作电源从rts和dtr上输入功率=2*8*12mw=192mw,另外由于通讯为间歇工作方式所以输入电源端的储能电容和txd 为负电平时能够补充一定的功率假设我们设计一个效率为85% 输出电压为3v 的dc-dc 转换器则输出电流可达54.4ma
3.2.智能控制收发使能
rs-232通讯接口采用电平方式传输适用于点-点通讯无须专门的收发使能控制而对于rs-485/rs-422通讯接口则不同由于采用差分电平方式传输且允许在一条通讯总线上挂接多个节点必然要求各个节点能够独立地控制总线驱动器关断或打开保证不会影响到其它节点的正常通讯为了简化与转换器rs-232 接口端相连的软件工作更重要的是为了tigao本转换器的通用性和灵活性即插即用无须要求用户更改任何相关软件和硬件本转换器内置微处理器实现收发使能的智能控制具体方法微处理器在检测到uart 的通信起始位后打开发送使能允许串行数据发送至rs-485/rs-422 通讯网络微处理器根据所设定的波特率延时至uart 停止位发送一半时例如11位格式时延时10.5t,t=1/fbaud ,开始检测是否有下一个起始位到来在时间t内若有下一个起始位到来则保持发送状态否则将关闭发送使能结束数据发送
4. 硬件设计
由于本转换器供电来自rs-232信号线其输入功率受到限制因而在本设计中将尽可能地采用+3v供电的低功耗器件保证总电流小于54.4ma 主要包括4个部分dc-dc转换器rs-232接口rs-485/rs-422接口和微处理器分别介绍如下
4.1. dc-dc转换器
显然还没有一个dc-dc 转换器能够直接实现-12v 输入+3v 输出的ic 但是如果我们利用现有的ic 稍作改动即可实现该功能图2 所示的dc-dc 转换电路就是利用max761 实现的-12v 输入+3v 输出效率高于85%的升压dc-dc 转换器该转换器实际输入电压范围为-2.5v 至-13.5v 静态工作电流仅i1=120 a 具有输出电流大于54.4ma的能力如果前端输入功率未受到限制则输出电流可达300ma以上由于max761采用高效率的pfm 控制方式,而且在本电路中,开关损耗较小(因为开关电流小于负载电流),所以能够达到比max761 典型应用更高的效率(max761 典型应用效率为86%) 输出电压由下列方程确定
vout=vref*r1/r2+0.7(v) 其中vref=1.5v

-12v至3v 效率高于85%的dc-dc转换器
4.2. rs-232接口
本转换器只需要一片单发/单收rs-232接口就可以满足要求但必须要求+3v单电源工作工作电流尽可能地小的接口电路max3221/max3221e 带15kvesd保护刚好能够满足上述要求具有1tx/1rx 其工作电压+3v至+5.5v, 仅1 a的静态电流负载电流小于i2=2ma
4.3. rs-485/rs-422接口
为兼顾rs-485/rs-422 接口中半双工和全双工的要求本转换器采用max3491 作为rs-485/rs-422 接口电路其主要指标为+3v 至+3.6v 单电源工作工作电流1ma,驱动60负载时半双工时两个120 终端匹配电阻的并联值峰值电流可达i3=3v/60 =50ma半双工和全双工工作方式是通过跳线器来设置的见图3
4.4. 微处理器
在本转换器中微处理器所要完成的任务很简单仅需要几根i/o 线即可实现参数的设置和发送使能的自动控制实际选择中采用microchip公司的pic12c508a其主要指标为工作电流i4<1.0ma(工作电压3v 频率4mhz),6 条i/o 线512kbyte 的rom 其中gp0 gp1 gp4和gp5四个引脚设定对应于16 种常用波特率300 600 1200至38.4kbps等8 种以及900 1800 至115.4kbps等8种的延时时间gp3对应于10位或11位串行数据格式gp2为txd输入用来检测uart何时发送和停止数据gp1为复用输出引脚用来控制max3491的发送使能控制端gp0也为复

本转换器的大电流总和<i1+i2+i3+i4=0.12+2.0+ 50.0+1.0=53.12ma 小于dc-dc转换器的小输出电流54.4ma 因而通过rs-232信号线为本电路供电是可行的实际上由于输入电源端的储能电容e1 和txd 为负电平时能够为电路补充一定的功率所以设计上留有较大的电源功率裕量
5. 软件设计
本转换器的软件设计较为简单微处理器复位后将所有的i/o 口设为输入并读入所有的i/o 状态保存到寄存器将gp2 和gp3 改设为输出状态并输出低电平使rs-485/rs-422 接口处于禁止发送允许接收的状态cpu 根据gpio 的初始状态确定出用户设定的通讯波特率和串行数据格式从而预置内部的延时设定cpu 检测到uart开始通讯后打开发送使能经内部预置延时后开始在一个位宽时间内检测是否有下一个起始位到来如检测到则重新延时等待否则关闭发送使能结束当前通讯重新检测uart的起始位对于半双工通讯方式允许发送使能前应该关闭接收使能而在发送使能关闭后才打开接收使能对于全双工通讯方式其接收使能可以不受此信号控制而可以直接通过跳线接地始终允许接收
6. 结论
在本rs-232到rs-485/rs-422接口的智能转换器设计中除了本身这个产品具有较高的应用价值外文中所涉及的rs-232信号线供电方案由于其高效率大电流输出能力在许多基于rs-232 接口的应用中都能够很好地满足应用另外这种智能控制rs-485/rs-422 接口的收发使能的思想在扩展基于rs-485/rs-422 接口的网络分支及延伸通讯距离都能够得到很好的应用


要单片机完成一项基本任务,必须将任务分解成一些具体步骤,再要求它去逐项执行每个步骤,还要对它下命令。该命令在单片机术语中称为“指令"(inetruction)。完成一项任务所需的所有指令的有序集合就称为“程序"(programm)。这些指令要预先一条一条顺序地放到单片机的程序存贮器中,单片机在运行时,片中的cpu从程序存贮器中逐条有序取出指令,执行指令,并将有关指令执行完毕,即可完成既定任务。
  不同种类的单片机有不同的一套命令(即所谓“指令系统")。pic系列的单片机其指令系统与51系列的不同。pic16f84有30余条指令构成的指令系统。每条指令由14位(bit)构成,这些位是二进制码的0和1,如果要使16f84端口b的b0位输出高电平,以点亮一只发光二极管led,而b口的其余各位仍保持低电平,则需要使单片机执行下列各条指令(机器码):
  11000000000000
  00000001100110
  11000000000001
  00000010000110
  10100000000100
  早先的技术人员就是用这样的二进制码来编写程序的。上列程序,看起来像天书,很费解,但它能指挥单片机的运作。因为单片机实际上是一种复杂的数字逻辑电路。我们都知道,要数字电路运作,必须相应输入高、低电平,对正逻辑而言,高电平为1,低电平为0。上述指令顺序在不同的数位上出现的0和1,经译码后,即可完成各种不同的运作,逐步完成单片机所要执行的任务,如点亮一个led。
  上述各条指令的写法,虽然是面向单片机,是用来直接指示单片机该如何运作的。因此,这种由0、1组成的指令称为机器语言。
  实际上,这种由二进码构成的指令集不但难读懂,而且用来编程也有困难。因为程序往往不是从头到尾顺序执行,有时还需中途转移到其它单元执行一段程序后再返回来。而指令是一条一条顺序存放在存贮器各个单元内的。因此,如果要转移,需指明具体转到哪个单元,即要写出该单元的地址。但在编写程序时,该程序有多长,具体要放到哪些单元中,都是未知数,又怎能具体指明要转到哪个单元呢?
  由于用机器语言会使程序难写、难读,后来一种新型的语言形式——汇编语言就问世了。使用这种语言写程序较方便,也比较容易读懂。不过,和机器语言一样,不同类型的单片机有不同的汇编语言。就如不同地区的人有不同的方言一样。在汇编语言中,转移地址是用符号来表示的。现在,我们把上面由机器语言写成的程序改写成由汇编语言构成的程序:
  movlw  b‘00000000’
  tris     port b
  movlw  b‘00000001’
  movwf  port b
fin: goto   fin

[nextpage]
  上列各条指令实际上是英语缩写和一些数组成的。如条中的movlw就是move literal tow的缩写,其意义为照原样移入工作寄存器w,而“原样"就是后接引号内的数字‘00000000’。引号前的b表示后续的是二进制数。第二句是将w内的数复制到b口的三态(tri-state)控制寄存器中,以设定b口为输出,然后将00000001送入w中,再复制到b口;后执行一条无限循环语句以保持b口的状态不变。从单片机外部看去,16f84的第6脚(即b0)维持为高电平,以点亮led。
  由上例可知,汇编语言较之机器语言要好懂得多。同时,后一句自身循环也是一种转移语句,转移目的地就是此句所在单元地址,如用机器语言,就难以标出具体地址,而用汇编语言助记符fin即可替代


西门子代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理,西门子中国代理商

展开全文

我们其他产品
我们的新闻
优质商家推荐 拨打电话