产品简介
6ES7 368-3BF01-0AA0
6ES7 368-3BF01-0AA0
产品价格:¥电议
上架日期:2015-09-16 07:06:19
产地:德国
发货地:上海
供应数量:不限
最少起订:1台
浏览量:67
资料下载:暂无资料下载
其他下载:暂无相关下载
详细说明
    6ES7 368-3BF01-0AA0,6ES7 368-3BF01-0AA0 产品让您放心,服务让您舒心,价格让您开心
    产品:全新原装 {现货}              价格:电议
    售后:质保一年                         起购:1台(件)(米)
    联系人:黄工(经理)    外加技术服务
    24小时联系电话:18301709106
    商务QQ:203789088 
    电话:021-31669565
    LED显示屏动态显示和远程监控的实现

     摘  要:由于普通LED点阵显示屏动态显示通常采用硬件扫描驱动,这在一些需要特殊显示的场合显得不够灵活。文中提出了一种利用PC机和单片机的通讯来实现显示屏灵活的动态显示和远程监控的设计方法,同时该方法还可以将显示内容在PC机上进行预览。  
        关键词:LED;动态显示;远程控制;显示预览  
    1引言
        LED 点阵电子显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。同时也可广泛应用到军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业。
    目前大多数的LED点阵显示系统自带字库。其显示和动态效果(主要是显示内容的滚动)的实现主要依靠硬件扫描驱动,该方法虽然比较方便,但显示只能按照预先的设计进行。而实际上经常会遇到一些特殊要求的动态显示,比如电梯运行中指示箭头的上下移动、某些智能仪表幅值的条形显示、广告中厂家的商标显示等。这时一般的显示系统就很难达到要求。另外,由于受到存储器本身的局限,其特殊字符或图案也往往难以显示,同时显示内容也不能随意更改。本文提出一种利用PC机和单片机控制的LED显示系统通讯方法。该方法可以对显示内容(包括汉字和特殊图符)进行实时控制,从而实现诸如闪动、滚动、打字等多种动态显示效果。该方法同时还可以调节动态显示的速度,同时用户也可以在PC机上进行显示效果的预览,显示内容亦可以即时修改。另外,通过标准的RS232/485 转换模块还可以实现对显示系统的远程控制。
    2系统硬件设计
        本 系统主要的硬件设计是下位机单片机的显示 控制部分。而上位机(PC机)与单片机显示控制部分的接口为标准RS232通讯方式。若需实现远程监控,只需增加RS232/485转换模块即可,该部分已有成熟的电路设计,故不再详细叙述。
    具体的LED显示屏控制电路如图1所示。整个电路由单片机89C52、点阵数据存储器6264、列驱动电路ULN2803、行驱动电路TIP122、移位寄存器4094及附属电路组成。该电路所设计的电子屏可显示10个汉字,需要40个8×8 LED点阵模块,可组成16×160的矩形点阵。由于AT89C52仅有8k存储空间,而显示的内容由PC机控制,因此不可能预先把需要显示的内容做成点阵存在单片机中,而只能由PC机即时地把所需显示的点阵数据传给单片机并存入缓冲区6264。
    该电路的显示采用逐行扫描方式。工作时,由单片机从缓冲区取出第一行需要显示的20字节点阵数据,再由列点阵数据输入端P1.2口按位依次串行输入至列移位寄存器,其数据输入的顺序与显示内容的顺序相反。然后置行点阵选通端P1.3为1,即置行移位寄存器的D为高电平,STR使能(所有4094的OE 引脚接+5V电平),从而使列移位寄存器中的数据同时并行输出以选通该行。经延时一段时间后再进行下一行点阵数据的显示。需要注意的是,每次只能选通一行数据,即要通过不断的逐行扫描来实现汉字或字符的显示。
    3显示与控制的设计
        在笔者设计的PC机控制多单片机显示系统中,用PC机实现的主要功能包括单片机显示子系统的选择,显示方式选择(包括静态、闪动、滚动、打字等),滚动方向选择(包括上下滚动和左右滚动),动态显示速度调节(即文字闪动频率、滚动速度、打字显示速度等),显示内容输入及显示预览等。单片机一般通过 RS232/485串行接收PC机发出的显示指采用定时器中断方式进行行扫描,每次中断显示一行,定时中断时间为1.25ms,这样整屏的刷新率为 50Hz,因而无闪烁感。

    实现动态显示速度调节的方法通常是改变定时器的中断时间,但是当显示速度很慢的时候,该方法容易使整屏的刷新率降低,从而使显示内容出现闪烁。因此,本设计采用一种“软定时”方法,即在程序中命名一变量作为“软定时器”,以用来设定两次动态显示的时间间隔。在对定时中断调用计数时,如果调用次数达到设定值,则改变显示内容。为保证能够正常显示,“软定时器”的设定值必须大于整屏显示周期。由于显示屏每行显示1.25ms,整屏显示周期为20ms,考虑到余量的情况,可将软定时器的设定值定在大于30ms。如此循环计数,即可实现动态显示。“软定时器”的设定值可以通过上位机PC机来改变,这样既可实现 LED动态显示的速度调节,又可保持显示内容的流畅和无闪烁感。
    3.1单片机动态显示控制
    以上提到的静态、闪动、滚动和打字等4种显示方式,实际上是单片机定时中断程序进行行扫描处理的不同方法。下面将分别说明如何实现这4种显示方式。
    静态显示只需在定时中断处理程序中从显示缓冲区调入相应的一行显示数据,然后选中该行即可实现该行的显示,如此循环,便可显示整个内容。闪动显示与此类似,不同的是要间隔一个“软定时器”的定时时间,在行扫描时,行移位寄存器的D端打入的全为0,可使得整屏不显示,以确保黑屏时间与显示时间相等,从而实现汉字或图符的闪动显示。
        滚动显示要求需要显示的内容每隔一定时间向指定方向(这里以从右向左为例)移动一列,这样显示屏可以显示更多的内容。为此,需要在下次移动显示之前对显示缓冲区的内容进行更改,从而完成相应点阵数据的移位操作。具体操作方法是:
        设置一个显示缓冲区(如图2所示),该区应包括两部分:一部分用来保存当前LED显示屏上显示的10个汉字点阵数据;另一部分为点阵数据预装载区,用来保存即将进入LED显示屏的1个汉字的点阵数据。滚动指针始终指向显示屏的最右边原点。当滚动指针移动到需要显示的点阵数据存储区的第1个汉字的首地址时,显示缓冲区LED显示区为空白,而预装载区已保存了第1个待显示汉字的点阵数据。当需要滚动显示时,则可在接下来的扫描周期的每个行扫描中断处理程序中,将对显示缓冲区的相应行点阵数据左移一位,同时更改显示缓冲区的内容。(需要注意的是,要确保该操作能在1.25ms的中断时间内完成。这里89C52采用22MHz晶振,实验证明可以实现该操作)。这样,在一个扫描周期后,整个汉字将左移一列,而显示缓冲区的内容也同时更改。由于预装载区保存了1个汉字点阵数据,即16×16点阵,所以当前显示缓冲区的内容只能移动16列。当下一个滚动到来时,滚动指针将移动到点阵数据存储区的下一个汉字的首地址,并在预装载区存入该汉字的点阵数据。然后重复执行上述操作便可实现滚动显示。特殊字符或图形的显示与此类似,这里不再赘述。

    打字显示要求汉字在显示屏上按从左到右的顺序一个个的出现,如同打字的效果。设计时可采用如下方法:首先将LED显示屏对应的显示缓冲区全部清零,即 LED显示空白,然后每间隔一个“软定时器”设定的动态显示时间,显示缓冲区依次加入一个汉字点阵数据并进行扫描显示,这样就可达到打字显示的效果。
    3.2 PC机控制程序
        a.通讯功能的实现
    在Windows环境下,实现PC与单片机的通讯可利用Windows的通讯API函数或者利用VC++(或其它语言)的标准通讯函数_inp、_outp来实现。但上述两种方法比较繁琐,而采用ActiveX控件MSComm32来实现则非常方便。该控件用事件的方式简化了对串口操作的编程,并可设置串行通信的数据发送和接收,还可对串口状态及串口通信的信息格式和协议进行设置。其初始化程序如下:


    一般情况下,PC要与多个单片机89C51系统进行主从式通讯,为了区分各单片机系统,可以使89C51采用串口工作方式3,即11位异步接收/发送方式,该方式的有效数据为9位,其中第9位为地址/数据信息的标志位,其作用是使从机据此判断发送的数据是否为地址,从而实现多机操作。但现在由于采用的是MSCOMM控件来实现PC机和单片机之间的通讯,这是一种标准的10位串口通信方式,即8位标准数据位和该数据的起始位、停止位各1位。因此二者格式不相符,故很难利用上述方案。因此可考虑将单片机串口设为工作方式1,即改为10位异步接收/发送方式来解决,其通讯流程如下:
    首先发通信开始标志,接着发送需要操作的单片机系统地址,然后发送显示工作命令字,该命令包括2个字节,前一字节用于设定显示方式和滚动方向,后一字节则用于设定显示速度。再往下是传送显示内容的点阵数据,最后对数据进行校验。该通讯规约非常简便,能够较好的解决上述问题,从而实现PC机与多单片机之间的主从式通讯及对显示的控制。
    需要注意的是,当显示内容需要改变时,为了避免在单片机串行中断接收数据时,显示屏出现乱码,应使显示屏暂不显示(处于“黑屏”状态),直到数据接收完全,串行中断处理结束时再显示。
    汉字字模的提取非常关键,本文的字模数据取自UCDOS下的字库文件HZK16。关于这方面的介绍较多,文献[2]给出了较为具体的在VC下提取汉字字模的方案,这里不再赘述。对于特殊字符或图形点阵数据的提取,简便的方法可以先做一个BMP文件,然后用一些取模软件(如字模提取v2.1)来获得。为了显示方便,点阵数据的格式应为n×(16×8),不足要求的则应以0数据补充。 b.动态效果模拟显示
    为了方便调节LED的显示效果,笔者在PC机的控制界面上设计了LED显示屏的模拟显示,它同实际的显示效果完全一样。用户可以设定显示的模式,并调节显示速度,然后在界面上对显示效果进行预览,同时还可以随时修改和设定参数,因而十分方便简捷。
    为此,可先在界面上描绘出虚拟的LED显示屏,由于实际的显示屏为160×16点阵,故须在界面 上设定相同的区域。
    实现动态显示效果的方法和以上几种基本类似,这里以滚动显示为例作一说明。对于需要滚动的文字,可以将其设置为位图格式,暂存于内存中,然后利用VC 提供的位图拷贝函数BitBlt将位图复制到显示位置。对于特殊字符或图形,则可以直接利用BitBlt函数调用到显示位置。然后在类CLEDDlg的 OnTimer函数中调用该函数,以实现文字的滚动显示。另外,也可以通过设定不同的响应时间间隔来改变文字的滚动速度。
     
    汉字显示屏广泛应用与汽车报站器,广告屏等。本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块,而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。同时为了降低制作难度, 仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。
    1汉字显示的原理:
    我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素 范围内的任何图形。
    用8位的AT89C51单片机控制, 由于单片机的总线为8位,一个字需要拆分为2个部分。
    软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。
       我们把行列总线接在单片机的i0口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。 在这个例子里,由于一共用到16行,16列,如果将其全部接入89c51
    单片机, 一共使用32条io口,这样造成了io资源的耗尽,系统也再无扩充的余地。 实际应用中我们使用4-16线译码器74ls154来完成列方向的显示。 而行方向16条线则接在
    p0口和p2口。
    程序清单:
    ORG  00H
    LOOP: MOV A,#0FFH ;开机初始化,清除画面
    MOV P0,A    ;清除P0口
           ANL P2,#00   ;清除P2口
    MOV R2,#200  
    D100MS: MOV R3,#250 ;延时100毫秒
           DJNZ R3,$
           DJNZ R2,D100MS
           MOV 20H,#00H ;取码指针的初值
    l100:    MOV R1,#100 ;每个字的停留时间
    L16:    MOV R6,#16 ;每个字16个码
           MOV R4,#00H ;扫描指针清零
           MOV R0,20H ;取码指针存入R0
    L3:    MOV A,R4   ;扫描指针存入A
           MOV P1,A   ;扫描输出
           INC R4      ;扫描指针加1,扫描下一个
           MOV A,R0   ; 取码指针存入A
           MOV DPTR,#TABLE ;取数据表的上半部分的代码
           MOVC A, 人机界面(又称用户界面或使用者界面)是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。凡参与人机信息交流的领域都存在着人机界面。            

    人机界面(HumanMachine Interb,简称HMI),是人与计算机之间传递、交换信息的媒介和对话接口,是计算机系统的重要组成部分。是指人和机器在信息交换和功能上接触或互相影响的领域或称界面所说人机结合面,信息交换,功能接触或互相影响,指人和机器的硬接触和软触,此结合面不仅包括点线面的直接接触,还包括远距离的信息传递与控制的作用空间。

    人机结合面是人机系统中的中心一环节,主要由安全工程学的分支学科安全人机工程学去研究和提出解决的依据,并过安全工程设备工程学,安全管理工程学以及安全系统工程学去研究具体的解决方法手段措施安全人机学。它实现信息的内部形式与人类可以接受形式之间的转换。凡参与人机信息交流的领域都存在着人机界面。

    S7-200系列PLC其它常用指令

     1.脉冲产生指令EU/ED的应用

    EU指令在EU指令前的逻辑运算结果由OFFON时就产生一个宽度为一个扫描周期的脉冲,驱动其后面的输出线圈。

    2.逻辑堆栈的操作

    LPS为进栈操作,LRD为读栈操作,LPP为出栈操作。

       S7-200系列PLC中有一个9层堆栈,用于处理逻辑运算结果,称为逻辑堆栈。

    3NOTNOPMEND指令

    NOTNOPMEND指令的形式及功能如表4-19所示。

    4-19  NOTNOPMEND指令的形式及功能

    STL

    功能

    操作数

    NOT

    逻辑结果取反

    NOP

    空操作

    MEND

    无条件结束

    NOT为逻辑结果取反指令,在复杂逻辑结果取反时为用户提供方便。NOP为空操作,对程序没有实质影响。MEND为无条件结束指令,在编程结束时一定要写上该指令,否则会出现编译错误。调试程序时,在程序的适当位置插入MEND指令可以实现程序的分段调试。

    4.比较指令

    比较指令是将两个操作数按规定的条件作比较,条件成立时,触点就闭合。比较运算符有:=>=<=><<>

    1)字节比较  字节比较用于比较两个字节型整数值INlIN2的大小,字节比较是无符号的。比较式可以是LDBABOB后直接加比较运算符构成。如:LDB=AB<>OB>=等。

    整数INlIN2的寻址范围:VBIBQBMBSBSMBLB*VD*AC*LD和常数。

    指令格式例如: LDB=  VBl0VBl2

    2)整数比较  整数比较用于比较两个一字长整数值INlIN2的大小,整数比较是有符号的(整数范围为16#800016#7FFF之间)。比较式可以是LDWAWOW后直接加比较运算符构成。如:LDW=AW<>OW>=等。

    整数INlIN2的寻址范围:VWIWQWMWSWSMWLWAIWTCAC*VD*AC*LD和常数。

    指令格式例如: LDW=  VWl0VWl2

    3)双字整数比较  双字整数比较用于比较两个双字长整数值INlIN2的大小,双字整数比较是有符号的(双字整数范围为16#8000000016#7FFFFFFF之间)。比较式可以是LDDADOD后直接加比较运算符构成。如:LDD=AD<>OD>=等。

    双字整数INlIN2的寻址范围:VDIDQDMDSDSMDLDHCAC*VD*AC*LD和常数。

    指令格式例如: LDD=  VDl0VDl2

    4)实数比较  实数比较用于比较两个双字长实数值INlIN2的大小,实数比较是有符号的(负实数范围为-1.175495E-38-3.402823E+38,正实数范围为+1.175495E-38+3.402823E+38)。比较式可以是LDRAROR后直接加比较运算符构成。如:LDR=AR<>OR>=等。

    实数INlIN2的寻址范围:VDIDQDMDSDSMDLDAC*VD*AC*LD和常数。

    指令格式例如: LDR=  VDl0VDl2

    • 继电器输出,最高输出电流 10A(不适于 LOGO!24o).
    • 内置EEPROM存储器,用于控制程序和设定值
    • 可选程序模块和组合电池/程序模块,2 年后备集成实时时钟。0BA6
    • 备份集成的实时时钟 20 天。
    • 内置夏令时/冬令时自动调节的实时时钟。
    • 8个数字量输入,4个数字量输出。
    • 对于DC12/24V型号,4个输入作为模拟量输入(0-10V);也可作为数字量输入。
    • 4个输入可用来高速计数,最高5KHz(只针对于直流型)。
    • 扩展模块连接接口,最多可编址 24 点数字量输入、16 (20) 点数字量输出、8 点模拟量输入和 2 (8) 点模拟量输出
    • 用于连接到 LOGO!LOGO! 的 TD 文本显示屏6
    • 连接 LOGO!TDE 至 LOGO!8 通过以太网。

    • 集成有基本和特殊功能:
      • 基本逻辑功能:
        与,或,非,与非,或非,异或,上升沿/下降沿触发。
      • 特殊功能:
        接通延时,锁存接通延时,断开延时,脉冲延时,锁定延时,计数器(加计数/减计数),时间开关,间隔延时继电器,运行小时数计数器,触发器,异步脉冲发生器,年时间开关,舒适照明开关功能,随机发生器,楼梯照明开关功能(符合 DIN 18015-2),边沿触发间隔延时继电器,组合接通/断开延时,模拟值比较器,模拟触发器,模拟值变化触发器,模拟看门狗,模拟放大器,移位寄存器,软键功能,PI 控制器,斜坡功能,模拟复用器,PWM 功能,模拟算术运算功能,模拟算术运算功能错误检测功能。
    • 可链接 200/400 个函数块。
    • 27/64 位存储器(包括重启位存储器、用于控制 LOGO! 的背光灯的位存储器)TD,用于在消息文本中的 2 个可参数化字符之间切换的位存储器)。
    • 内置保持。
    • 口令保护。
    作为选项可提供的功能
    • 通过用于 LOGO! 的可选程序块提供额外专有技术保护0BA6,或通过标准 CF/微型 CF 卡
    • LOGO! 0BA6 集成实时时钟的后备, 可选用使用寿命 2 年的电池模块和组合电池/程序模块
    用于 LOGO! 的其它功能8
    • 数据记录至内部存储器或微型 CF 卡(最多 20000 个记录)
    • 用于 LOGO! 的宏(用户自定义功能)极为简单
    • 可以连接 400 个功能块
    • 64 个模拟位存储器
    • 64 个接线端子
    • 4 个 8 位移位寄存器
    • 扩展诊断功能

    绘芯人机界面与单片机通讯
    单片机与绘芯人机界面通信有两个方案:一是用modbus—rtu协议,二是自由通讯协议;
    本实例采用武汉绘芯科技有限公司的人机界面作为参考,因为公司提供一系列的技术支持和公布单片机源代码,开发工程方便有效。

    公司网站:http://www.ebnar.com
    方案比较:
    方案一  modbus—rtu协议:
         优点:工业标准通讯协议,具有通用性,,传输数据量大
         缺点:需要时间去了解协议的格式和以及按照规定编写通讯程序(我们提供MODBUS-RTU源代码,客户直接移植就可以,不必费心)
    方案二   自由协议:
         优点:数据格式客户自己定义,灵活多变,定制性强,可以模拟任何已知报文的通讯协议
         缺点:传输数据量不大,通用性不强,移植不方便
    客户可以根据以上两种通讯协议的优缺点来选择理想的方案;
    实现方法:
    方案一:
    1.       工程属性选用MODBUS-RTU协议;
    2.       先了解MODBUS-RTU协议,基本的01 03 05 06 16 的功能码需要了解,其他可以不去深究;提供相关的资料
    3.       使用我们提供的MODBUS-RTU协议(C语言)开发源代码,把主要的01 03 05 06 16 函数移植到单片机通讯上,大大节省了开发时间;

    方案二:
    1.       工程属性选用FreeProtocol协议;
    2.       
    3.       打开控制令编辑器(设定—>宏指令—>宏指令编辑器)或者直接按F8;
    4.       新增宏指令,在宏指令里面使用到Output()、Input()、SetWordData()、GetWordData()这四个函数;注:可以参考附一
    5.       Output()函数,把设定好的字符串发送到相应的串口输出;Input()函数,从设定好的串口读取需要的字符串;
    6.       采集显示:
    SetWordData()函数,把Input()函数接收回来的数据,发送给HIM用户自定义寄存器里,然后在显示控件里填上已经有数据的HIM寄存器,即可显示单片机采集上来的数据;
    7.       改写发送:
    在显示控件了把需要改写的数据绑定HIM寄存器,使用GetWordData()获得修改后的数据,通过output()发送把数据发送到单片机;
        
    附一:

    Output();
    【描述】
    第一个参数channel表示通道,如果通道为com1,则channel=1;如果通道为com2,则channel=2,数据类型为int。
    第二个参数pString表示从通道输出的字符串的地址,数据类型为unsigned char *。
    第三个参数count表示字符串中的字符个数,数据类型为int。
    第四个参数result表示Output函数运行后返回的结果,如果result大于0,则表示读写有效,数据类型为int。
    注意:此函数只能用在freeprotocol(自由协议通道)中。
    【用法】
    Output(channel,pString,count,result);
    【举例】
    char srt[9];
    int result;
    Output(1,str[0],9,result);
    Input();
    【描述】
    第一个参数channel表示通道,如果通道为com1,则channel=1;如果通道为com2,则channel=2,数据类型为int。
    第二个参数pString表示写入通道的字符串的地址,数据类型为unsigned char *。
    第三个参数count表示字符串中的字符个数,数据类型为int。
    第四个参数result表示Output函数运行后返回的结果,如果result大于0,则表示读写有效,数据类型为int。
    注意:此函数只能用在freeprotocol(自由协议通道)中。
    【用法】
    Input(channel,pString,count,result);
    【举例】
    char srt[9];
    int result;
    Input(1,str[0],9,result);
    GetWordData();
    【描述】
    函数功能:从通道中读取Word数据。
    第一个参数channel表示通道,数据类型为unsigned char。
    第二个参数slaveID表示从机号,数据类型为unsigned char。
    第三个参数address表示系统通道地址,数据类型为unsigned short。
    第四个参数count表示要读出的字的个数,数据类型为unsigned short。
    第五个参数表示命令号,数据类型为unsigned char。
    第六个参数pValue用来保存从系统通道读出的count个字,数据类型为unsigned short *。
    【用法】
    GetWordData(channel,slaveID,address,count,cmd,pValue);
    【举例】
    unsigned short wordData[10];
    GetWordData(0, 1,8000, 10, 0,wordData);
    从系统通道 8000地址中读取10个数据到wordData
    SetWordData();
    【描述】
    函数功能:从通道中写入一个Word数据。
    第一个参数channel表示通道,数据类型为unsigned char。
    第二个参数slaveID表示从机号,数据类型为unsigned char。
    第三个参数address表示系统通道地址,数据类型为unsigned short。
    第四个参数cmd表示命令号,数据类型为unsigned char。
    第五个参数pValue用来保存写入系统通道的字,数据类型为unsigned short。
    【用法】
    SetWordData(channel,slaveID,address,cmd,source);
    【举例】
    unsigned short wordData = 1;
    SetWordData(0, 1,1000,0,wordData);
    把wordData中的Word数据写到系统通道 1000地址处
    附录二:
    使用自由协议来模拟modbus-RTU
    //COM1:freeprotocol
    //COM2:modbus-RTU
    /*自由协议通道采集数据存放在系统通道,在界面显示
       modbus通道采集到的数据,处理后,发送到自由协议的设备上*/
    unsigned char command[32];
    unsigned char response[32];
    unsigned char temp1,temp2;
    unsigned short address, checksum;
    unsigned short read_no, return_value1, return_value2,return_value3,read_data[2], i;
    unsigned short com2_data;
    /****************以上是新建需要使用的变量***********/
    Fill(command, 0, 32);// initialize command[0]~command[31] to 0
    Fill(response, 0, 32);  //把command 和response 初始化
    command[0] = 0x1;// 设置发送字符窜的第一个数据  station number
    command[1] = 0x3;// 设置发送字符窜的第二个数据 read holding registers (function code is 0x3)
    address = 0;// starting address (4x_1) is 0
    HiByte(address, command[2]);//设置发送字符窜的第三个数据
    LoByte(address, command[3]);//设置发送字符窜的第四个数据
    read_no = 2;// the total words of reading is 2 words
    HiByte(read_no, command[4]);//设置发送字符窜的第五个数据
    LoByte(read_no, command[5]);//设置发送字符窜的第六个数据
    CRC(command, 6,checksum);// calculate 16-bit CRC
    LoByte(checksum, command[6]); //设置发送字符窜的第七个数据
    HiByte(checksum, command[7]); //设置发送字符窜的第八个数据
    Output(1,command,8, return_value1); //把设置好的8个数据,从通讯口1发送出去,具体参数设置参考Output()使用
    Input(1,response,9,return_value2); //从通讯口1等待接收9个字符数据,并且放在response[0]~response[8],具体参数设置参考Intput()使用
    CRC(response, 7,checksum); //对采集上来的9个数据中前7个进行了CRC-16校验,校验结果存放在checksum
    LoByte(checksum, temp1);  //把checksum的低8位放在temp1
    HiByte(checksum, temp2);  //把checksum的高8位放在temp1
    if(temp1==response[7]&&temp2==response[8])    //CRC校验码进行对比判别时候接收正确

                                                                               //CRC检验正确后,把采集来的数据中指定需要的数据放在read_data[]
    read_data[0] = response[4] + (response[3] << 8);   
    read_data[1] = response[6] + (response[5] << 8);
    SetWordData(0 ,1 ,0 ,2,0 , read_data); // 通过SetWordData()函数,把read_data送到系统寄存器中,具体使用需要参考SetWordData()函数使用
    }
    GetWordData( 2, 1, 2, 2, 3, &com2_data);   // 通讯口2,使用的是modbus-RTU协议,
    command[0] = 0x1;// station number
    command[1] = 0x6;// wirte holding registers (function code is 0x6)
    address=10;
    checksum=0;
    HiByte(address, command[2]);
    LoByte(address, command[3]);
    HiByte(com2_data, command[4]);
    LoByte(com2_data, command[5]);
    CRC(command, 6,checksum);// calculate 16-bit CRC
    LoByte(checksum, command[6]);
    HiByte(checksum, command[7]);
    Output(1,command,8, return_value3);  //发出定义好8个字符串


    S7--300/400网络中的从站MPI接口。而且,各接口也可以作为一个可自由编程的设备接口被参数化,并通过ASC II协议控制驱动器、modem和打印机。借助通信扩展模块,CPU 226XM还可以用作Profibus-DP网络的从站和AS-i网络的主站。另外,它支持32位浮点运算,包括 三角函数和积分PID控制器。 
    与所有S7-200 CPU一样,Simatic S7--200 CPU 226XM微型PLC不仅具有24 VDC输入和24 VDC晶体管输出,同时还具有230 VAC输入和继电器输出。由于它的输入电压范围大,可从85V到264V,使其可以在全世界各地使用。 
    和其它S7--200 CPU一样,用户可以用Step7-Micro/WIN软件进行编程和对新设备组态。序的生成过程。CPU 226XM程序可以用MicroWIN V3.1x进行编辑,甚至在运行状态时也能进行。

    德国西门子(SIEMENS)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金、化工、印刷生产线等领域都有应用。西门子(SIEMENS)公司的PLC产品包括LOGO、S7-200、S7-1200、S7-300、S7-400等。 西门子S7系列PLC体积小、速度快、标准化,具有网络通信能力,功能更强,可靠性高。S7系列PLC产品可分为微型PLC(如S7-200),小规模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等

    S7-200的工作过程和CPU的工作模式

    (1) S7-200在扫描循环中完成一系列任务。任务循环执行一次称为一个扫描周期。S7-200的工作过程如图4所示。在一个扫描周期中,S7-200主要执行下列五个部分的操作:

    (Ⅰ)读输入:S7-200从输入单元读取输入状态,并存入输入映像寄存器中。

    (Ⅱ)执行程序:CPU根据这些输入信号控制相应逻辑,当程序执行时刷新相关数据。程序执行后,S7-200将程序逻辑结果写到输出映像寄存器中。

    (Ⅲ)处理通讯请求:S7-200执行通讯处理。

    (Ⅳ)执行CPU自诊断:S7-200检查固件、程序存储

    器和扩展模块是否工作正常

    (Ⅴ)写输出:在程序结束时,S7-200将数据从输出映像寄存器中写入把输出锁存器,最后复制到物理输出点,驱动外部负载。

    2)、S7-200 CPU的工作模式

       S7-200有两种操作模式:停止模式和运行模式。CPU面板上的LED状态灯可以显示当前的操作模式。

       在停止模式下,S7--200不执行程序,您可以下载程序和CPU组态。在运行模式下,S7-200将运行程序。

       S7-200提供一个方式开关来改变操作模式。您可以用方式开关(位于S7-200前盖下面)手动选择操作模式:当方式开关拨在停止模式,停止程序执行;当方式开关拨在运行模式,启动程序的执行;也可以将方式开关拨在TERM(终端)(暂态)模式,允许通过编程软件来切换CPU的工作模式,即停止模式或运行模式。

        如果方式开关打在STOP或者TERM模式,且电源状态发生变化,则当电源恢复时,CPU会自动进入STOP模式。如果方式开关打在RUN模式,且电源状态发生变化,则当电源恢复时,CPU会进入RUN模式。

    6ES7 368-3BF01-0AA0

    西门子S7系统PLC的符号编程基础介绍

    一、系统存储区

    S7的系统存储区集成在CPU中,不能被扩展。系统存储区根据功能分为不同的区域供用户使用。在用户程序中使用相应的指令可以在相应的地址区内直接对数据进行寻址。

    1.输入过程暂存区(I

    2.输出过程暂存区(Q

    3.位存储区(M

    4.外部输入输出(PI/PQ

    5.计时器(T

    6.计数器(C

    7.数据块(DB

    8.局部数据(L

    二、绝对地址寻址

    什么是绝对地址寻址?

    1.位寻址

    2.字节寻址

    3.字寻址

    4.双字寻址

    三、符号地址寻址

    1.       全局符号

    在符号编辑器中定义的符号。

    2.       局部符号

    局部符号是在程序块中变量申明区中定义,定义的对象也只限于本块的块参数、静态数据和临时数据等,且所定义的符号只在本程序块中有效。



在线询盘/留言
  • 免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责,本网对此不承担任何保证责任。我们原则 上建议您选择本网高级会员或VIP会员。
    0571-87774297