西门子PLC通讯故障解决

时间:2024.3.31

首先,检查你的程序中是否包含了OB86(检测机架丢失或者从站丢失)和OB122(IO访问丢失)这两个组织块,如果没有一旦有干扰CPU就会故障停机,一般建议程序中添加OB80、OB85、OB86、OB87、OB121、OB122这些空的组织块,以便意外故障造成的停机。

1. DP_MASTERSYSTEM (INT)

表示配置的DP主站系统的个数,在本例中为1。

2.EXTERNAL_DP_INTERFACE(BOOL)

=0,CPU主站的集成DP接口;

=1,外部接口,如CP/IM。

3. MANUAL_MODE (BOOL)

=0,自动模式,此模式下不支持单个从站的诊断;

=1,手动模式,可以进行单个从站的诊断。

4. SINGLE_STEP_SLAVE (BOOL)

转到下一个出错的DP从站。

5. SINGLE_STEP_ERROR(BOOL)

转到正在显示的DP从站的下一个错误。

6. RESET (BOOL)

=1,复位,初始化系统。

7. SINGLE_DIAG (BOOL)

只在手动模式下(MANUAL_MODE=1)有效。

=1,读DP从站的诊断。可在SINGLE_DIAG_ADR配置该从站的站号。

8. SINGLE_DIAG_ADR (BYTE)

只在手动模式下(MANUAL_MODE=1)有效。

与SINGLE_DIAG配合使用,在其中设置单独诊断的从站的站号

9.ALL_DP_SLAVES_OK (BOOL)

=0,系统中从站存在故障;

=1,系统中从站运行正常。

10.SUM_SLAVES_DIAG (BYTE)

出错的DP从站的数目。

11. SLAVE_ADR (BYTE)

出错的DP从站的站号。

12. SLAVE_STATE (BYTE)

13SLAVE_IDENT_NO (WORD)

与SLAVE_ADR有关。

14. ERROR_NO (BYTE)

与当前SLAVE_ADR参数指示的从站相对应的错误编号,每个编号都有一个与之相对应的故障信息。

15.ERROR_TYPE (BYTE)

16.MODULE_NO (BYTE)

与当前SLAVE_ADR参数指示的从站相对应的模块编号,指示出错的从站对应的槽或模块。

17.MODULE_STATE (BYTE)

与当前SLAVE_ADR参数指示的从站相对应的模块状态。

18.CHANNEL_NO (BYTE)

与当前SLAVE_ADR参数指示的从站相对应的故障模块的通道编号。

19.CHANNEL_TYPE (BYTE)

与当前SLAVE_ADR参数指示的从站相对应的模块中出错通道的类型。

具体的故障信息参见手册P4表格。

20.CHANNEL_ERROR_CODE (INT)

与当前SLAVE_ADR参数指示的从站相对应,每一个错误的通道都明确地给出了错误信息,每条信息对应着一个标号,具体标号对应的故障信息参见手册P4-P8表格。

21. CHANNEL_ERROR_INFO_1(DWORD)

与当前SLAVE_ADR参数指示的从站相对应,故障通道上的位错误信息,不同的错误信息对应不同的错误类型(ERROR_TYPE)。

ERROR_TYPE=3,通道诊断信息详见手册P8中部表格。

ERROR_TYPE=4,S7诊断信息详见手册P9-P10表格。

22.CHANNEL_ERROR_INFO_2(DWORD)

与当前SLAVE_ADR参数下,与上文中ERROR_TYPE中的编号4(S7诊断)相对应,提供了满足S7模块DS0数据记录的特殊错误信息,详见手册P11表格。

23. DIAG_COUNTER (BYTE)

显示的诊断DP从站的总数。

24. DIAG_OVERFLOW (BOOL)

同时接受诊断的总数大于32个,从站超过了FB125可以处理的上限,需要执行RESET复位。

25. BUSY (BOOL)

FB125正在诊断DP系统。

DB125的功能:

在程序中,用到了数据块DB125,其作用如下:


第二篇:西门子PLC于440通讯


西门子S7-200和MM440通讯USS协议详细说明 #1

传统的PLC与变频器之间的接口大多采用的是依靠PLC的数字量输出来控制变频器的启停,依靠PLC的模拟输出来控制变频器的速度给定,这样做存在以下问题:

1、需要控制系统在设计时采用很多硬件,价格昂贵

2、现场的布线多容易引起躁声和干扰

3、PLC 和变频器之间传输的信息受硬件的限制,交换的信息量很少。

4、在变频器的启停控制中由于继电器接触器等硬件的动作时间有延时,影响控制精度。

5、通常变频器的故障状态由一个接点输出,PLC能得到变频器的故障状态,但不能准确的判断当故障发生时,变频器是何种故障。

如果PLC通过与变频器进行通讯来进行信息交换,可以有效地解决上述问题,通讯方式使用的硬件少,传送的信息量大,速度快,等特点可以有效地解决上述问题,另外,通过网络,可以连续地对多台变频器进行监视和控制,实现多台变频器之间的联动控制和同步控制,通过网络还可以实时的调整变频器的参数。

目前各个厂家的变频器都相继的开发出了支持连网的功能,比如,很多变频器都有了支持现场总线(如:DEVICENET、PROFIBUS、AS_I)等的接口协议,可以很方便的与PLC进行数据通信。现在主要介绍西门子S7-200和MicroMaster变频器之间的通讯协议USS,使用USS通讯协议,用户可以通过程序调用的方式实现S7-200和MicroMaster变频器之间的通信,编程的工作量小,通讯网络由PLC和变频器内置的RS485通讯口和双绞线组成,一台S7-200最多可以和31台变频器进行通讯,这是一种费用低、使用方便的通讯方式。

一、USS通讯协议介绍

USS通讯协议的功能,所有的西门子变频器都带有一个RS485通讯口,PLC作为主站,最多允许31个变频器作为通讯连路中的从站,根据各变频器的地址或者采用广播方式,可以访问需要通讯的变频器,只有主站才能发出通讯请求报文,报文中的地址字符指定要传输数据的从站,从站只有在接到主站的请求报文后才可以向从站发送数据,从站之间不能直接进行数据交换。在使用USS协议之前,需要先安装西门子的指令库。USS协议指令在STEP7—MICRO/WIN32指令树的库文件夹中,STEP7—MICRO/WIN32指令库提供14个子程序、3个中断程序和8条指令来支持USS协议。调用一条指令时,将会自动地增加一个或几个子程序。

USS协议使用CPU的下列资源:

1)USS协议占用PLC的通讯端口0或1,使用USS——INIT指令可以选择PLC的端口是使用USS协议还是PPI协议,选择USS协议后PLC的相应端口不能在做其它用途,包括与STEP7-WICRO/WIN32的通讯,只有通过执行另外一条USS指令或将PLC——CPU的模式开关拨到RUN或STOP状态,才能钟新在进行PPI通讯,当PLC和与变频器通讯中断时,变频器将停止运行,所以在本例中选择CPU226 因为它有两个通讯端口,当第一个口用于USS通讯时,第二个端口可以用于程序监控,USS指令要占用2300~3600字节的程序存储空间和400个字节的变量存储区间

2)变频器的通讯与CPU的扫描时异步的,完成一次变频器的通讯通常需要几个CPU的扫

描周期,通讯时间和链路上变频器的台数、波特率和扫描周期有关,本例中通讯的波特率设定为19200,变频器的台数为3台,经实际调试检测通讯时间大约为50ms.

二、使用USS协议的步骤:

1)安装指令库后在STEP7-Micro/win32指令树的/指令/库/USS PROTOOL文件夹中将出现8条指令,用它门来控制变频器的运行和变频器参数的读写操作,这些子程序是西门子公司开发的用户不需要关注这些指令的内部结构,只需要在程序中调用即可。

2)调用USS—INIT初始化改变USS的通讯参数,只需要调用一次即可,在用户程序中每一个被激活的变频器只能用一条USS-DRIVE-CTRL指令,可以任意使用USS-RPM-X 或USS-WPM-X指令,但是每次只能激活其中的一条指令。

3)为USS指令库分配V存储区。在用户程序中调用USS指令后,用鼠标点击指令书中的程序块图标,在探出的菜单中执行库内存命令,为USS指令库使用的397个字节的V存储区指定起始地址,

4)用变频器的操作面板设置变频器的通讯参数,使之与用户程序中所用的波特率和从站地址相一致。

5)连接CPU和变频器之间的通讯电缆,为了提高看干扰能力最好采用屏蔽电缆。

三、USS指令说明

1、初始化指令USS-INIT

初始化指令USS-INIT用于允许或禁止PLC和变频器之间的通讯,在执行其他USS协议前,必须先成功的执行一次USS-INIT指令,只有当该指令成滚执行完成后其完成位(DONE)置位后,才能继续执行下面的指令。次USS-INIT指令的参数如表1所示:

西门子PLC于440通讯

2、控制指令USS-CTRL

USS-CTRL指令用于控制已经用USS-INIT激活了的变频器,每台变频器只能使用一条这样的指令,该指令将用户命令放在一个通讯缓冲区内,如果指令的参数DRIVE指定的变频器已经激活,缓冲区内的命令将被发送到指定的变频器,该指令的参数如表2所示:

西门子PLC于440通讯

3、读取变频器参数的USS_RPM_X指令

读取变频器参数的指令包括USS_RPM_W; USS_RPM_D; USS_RPM_R三条指令,分别用于读取变频器的一个无符号字,一个无符号双字和一个实数类型的参数,该指令的参数如表3所示:

西门子PLC于440通讯

4、写变频器参数的USS_WPM_X指令

写变频器参数的指令包括USS_WPM_W; USS_WPM_D; USS_WPM_R三条指令,分别用于向指定变频器写入一个无符号字,一个无符号双字和一个实数类型的参数,该指令的参数如表4所示:

西门子PLC于440通讯

四、在使用USS协议时变频器的相关参数设定如下(以MM440为例)

1、P0003=3 允许访问变频器的所有参数。

2、P0970=1 允许变频器通过参数复位。

3、P0700=5 变频器的控制方式选择为通讯方式。

4、P2010[2>=6 变频器的USS波特率选择为9600

5、P2011[0>=11 变频器的USS地址0~31

五、应用实例

1、控制说明

自动化生产线运载小车是工业自动化生产过程中一种非常实用的机械,它主要用在工厂的自动化生产上不同的生产线之间以及不同的工位之间的物料搬运。它的一个完整的动作周期包括:当一个工位需要装配零件时,该工位的操作者在该工位的操作盘上输入需要的零件名称,输入的信号通过MIS(或ERP)系统生成一个作业信息,该作业信息包括所需零件的存放位置,零件的外型尺寸及所需工位的工位号,然后,MIS(或ERP)系统把该作业信息发送到运载小车的控制系统中,如果运载小车正在作上次接收到作业,则本次下发的作业信息存储到运载小车的作业队列中,前面所接收到作业做完后执行该作业,执行该作业的步骤是运行到取料位置,根据零件的外型尺寸,决定取料时升降和左、右的运行位移,取料完成后,带载运行到所需零件的工位.运载小车动作过程可分为前进、后退;上升、下降;向左、向右,三个方向的运动,在控制系统的设计上,前后运行采用一台变频器,上升下降运行采用一台变频器;左右运行采用一台变频器。控制系统采用西门子S7-200系列的CPU226,CPU226和三台变频器之间采用USS协议进行通讯,系统的硬件配置如下图所示:

西门子PLC于440通讯

图1:系统的硬件配置图

2、USS通讯的控制程序:

西门子PLC于440通讯

西门子PLC于440通讯

P.S:西门子S7-200和MicroMaster变频器之间的通讯协议USS,使用USS通讯协议,用户可以通过程序调用的方式实现S7-200和MicroMaster变频器之间的通信,编程的工作量小,通讯网络由PLC和变频器内置的RS485通讯口和双绞线组成,一台S7-200最多可以和31台变频器进行通讯,这是一种费用低使用方便的通讯方式。.(希望论坛能让图显示范围大些,这样要点击放大看很麻烦)。

S7-200 PLC的M点一定要接地(PE),使RS485两根线通讯+/-电压信号必须定义0位,否则就别想让USS正常通讯。

西门子S7-300系列PLC与PC机通信实现的研究

类别:行业知识 发布时间:2008-1-25 阅读:1045

摘要 本文主要介绍了在DELPHI-p.htm" target="_blank" title="DELPHI货源和PDF资料">DELPHI和Microsoft Access数据库开发环境下,PC机应用软件与西门子S7-300 系列PLC的数据通信的实现方法。并把此方法应用于复杂控制系统的调试及PC机管理系统与PLC控制系统的信息交换中。

关键字 DELPHI-p.htm" target="_blank" title="DELPHI货源和PDF资料">DELPHI,PRODAVE,数据通信,可编程序控制器,MPI

引言

西门子工控产品在我国有较高的市场占有率,它的通信及网络产品有着引导世界工控技术潮流的作用,研究西门子工控产品及通信技术的实际应用问题有着广泛普遍的重要意义。本文通过对某市级烟草公司的卷烟配送分拣系统的研究,探讨了在Windows环境下,用Delphi开发的数据库应用软件与西门子S7-300之间通信的实现问题。该卷烟配送分拣系统计算机部分结构如图1所示。

该系统管理计算机接收信息中心局域网发送来的各条送货线路当天的访销信息数据,在此基础上管理计算机建立起以送货线路为单位的配方数据库,将配方数据分批次连续地下传给PLC。PLC 根据下传的配方数据对系统控制使其连续分拣和收集,同时系统工作状态及工

作数据通过PROFIBUS 现场总线在两个触摸屏TP27-10得到动态显示,最后在收集工位自动得到一箱对应一个销售网点的用户配料。为了提高调系统试效率,我们在DELPHI-p.htm" target="_blank" title="DELPHI货源和PDF资料">DELPHI和Microsoft Access数据库平台上编写了用于PLC控制程序的调试软件。

从上看出该系统能否研制成功必须要解决的问题是:西门子S7-300系列PLC通讯协议不公开,管理计算机和调试计算机上第三方软件编制的程序如何实现PC机与西门子S7-300系列PLC信息交换?通过技术调研和实际调试,我们成功实现了在VB、DELPHI-p.htm" target="_blank" title="DELPHI货源和PDF资料">DELPHI程序开发平台上开发的管理程序及调试程序与S7-300系列PLC通信,顺利完成了系统研制任务。限于篇幅,本文以调试软件的通信实现方法来讨论第三方应用软件与西门子S7-300 PLC的通信问题。

2调试软件设计

根据PLC控制程序的调试要求,该调试软件使用DELPHI-p.htm" target="_blank" title="DELPHI货源和PDF资料">DELPHI的数据库技术把事先设计的60个配方数据写入数据库,根据调试需要也可通过人机界面对数据库中的数据进行任意修改,当执行“下传数据”命令时把数据库中的数据字段进行一定数据处理后通过调用PRODAVE S7软件包写入PLC中对应的DB(DATA BLOCKS)块,其中一条记录对应一个DB块,每条记录的一个字段对应该DB块中的一个字。该调试软件也可按一定顺序读PLC中各DB块中的字,并把读取的数据经过处理后写入数据库,以供调试人员检查写入数据的正确性。PC机与PLC CPU318-2DP MPI口之间的数据通信是通过PC/MPI适配器硬件连接实现的。

3数据通信

3.1 通信软件

实现PC机与PLC之间的数据通信是一个棘手的问题。西门子公司的PRODAVE S7软件包的动态链接库(DLL)提供了大量的基于Windows NT,Windows95/98,Windows3.11或MS-DOS的函数,这样就使用户解决PLC与PC之间的数据交换和数据处理问题变为可能。

3.2 通信函数

在DELPHI-p.htm" target="_blank" title="DELPHI货源和PDF资料">DELPHI的Object Pascal语言中,要访问动态链接库DLL(Dynamic Link Library)中的例程有两种方式。一种是静态引入方式;另一种是动态引入方式。

本软件使用静态引入方式,即在单元的Interface部分用External指示字列出要从DLL中引入的例程。如果要引入的例程比较多,就可以用一个专门的单元来集中声明要引入的例程。

PLC控制程序调试软件用到的PRODAVE函数主要有:

(1)load_tool PC机与PLC系统初始化链接;

(2)unload_tool 断开PC机与PLC系统链接;

(3)db_read 从PLC的DB块中读数据字;

(4)db_write 向PLC的DB块中写数据字。

3.3 通信程序的实现

在该调试软件中用一个专门的单元集中声明要引入的PRODAVE S7动态链接库的例程,然后在程序中在引用这个单元,即把引入单元“prodave”加到程序的Uses子句。该引入单元的代码如下:

unit prodave;

interface

type

Tadr_table_type=record

adr:byte; segmentid:byte;

slotno:byte; rackno:byte;

end;

function load_tool(no:Byte;name:PChar;adr_table_type:PChar):Integer;stdcall;external "w95_s7.dll";

function unload_tool:Integer;stdcall;external "w95_s7.dll";

function

db_read(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer;stdcall;external

"w95_s7.dll";

function

db_write(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer;stdcall;external "w95_s7.dll";

??

implementation

end.

在调试软件的主程序中调用该引入单元前,须将软件包prodave.pas文件加到工程中。这样才能在主程序中调用w95_s7.dll中的函数,具体程序调用实现如下:

implementation

uses prodave;

{$R *.DFM}

??

begin

plc_adr_table[0] := 2; {address} plc_adr_table[1] := 0; {segment id}

plc_adr_table[2] := 2; {slotno} plc_adr_table[3] := 0; {rackno} plc_adr_table[4] := 0;

res := Load_tool(1,"S7ONLINE",@plc_adr_table); //初始化链接

函数load_tool的作用在于初始化适配器,初始化参数的地址以及激活选定的界面。程序在读写PLC数据前应该用该函数初始化PC机与PLC的连接。

此函数传送以下3个参数:

no:此参数设置可激活连接的数量,连接个数可以达到16个。此例中,no=1;

device:用户驱动设备名称,如MPI驱动器的设备名为“S7ONLINE”;

plc_adr_table:连接部分的地址列表指针。

如果没有错误,此函数返回0,否则返回错误信息的相应十六进制代码。下面给出数据下载程序:

begin

error:=false;

table1.first; //定位到配方表的首记录

for i:=2 to 61 do //把60个配方数据写到DB2-DB61

begin

for j:=1 to 42 do //把42个库位的自动配烟数的值高低字节调换位置存入buffer数组

begin

c0:=table1.fields.fields[j].asinteger;

clow:=c0 shl 8;

chigh:=c0 shr 8;

cdate:=clow xor chigh;

buffer[j-1]:=cdate;

end;

anzahl:=42;

dbno:=i; //DB块

dwno:=1; //第1个数据字,即DW2

res := db_write(dbno,dwno,@anzahl,@buffer);

函数db_write()的作用是从PC机的数组变量“buffer”中给PLC的第“dbno”个数据块中从“dwno”个数据字开始写“anzahl” 个数据字。如果数据块不存在,将返回错误信息的代码。如果要写的数据字数目的长度超过了数据块的长度,要写的数据字的长度将得到更正,同时此函数还返回303H的错误信息。

需要特别注意的是:数据在缓冲区存放的顺序是从高字节到低字节。而Object Pascal语言中,变量类型为word的变量,它的数据存放顺序是从低字节到高字节。因而,在对所读取的数据进行操作时或给PLC数据块中写数据字时要进行相应的处理。

结束程序之前,必须调用适配器函数unload_tool断开PC机与PLC的连接。否则,将引起PC机死机,或者系统紊乱。

由于数据上传与数据下载的实现方法相近,限于篇幅,数据上传实现的方法本文不予介绍,请读者参考数据下载实现方法部分。

4结束语

运用DELPHI-p.htm" target="_blank" title="DELPHI货源和PDF资料">DELPHI开发环境编写的PLC控制程序调试软件,具有界面友好、人机交互功能方便、数据库功能强大灵活的优点,具有一定的通用性和实用性。而且通过调用PRODAVE S7软件包的动态链接库实现PC机对PLC CPU318-2DP数据的读写操作,不但数据传输数率快,而且数据传输正确率高。在对PLC控制系统的调试过程中,可以大大缩短调试周期,提高工作效率。此通信技术的实现对西门子工控产品的应用及PROFIBUS现场总线的推广应用有着广泛普遍的重要意义。

参 考 文 献

1 SIEMENS.Toolbox for Data Link PGs/PCs to SIMATTIC S7

2 SIEMENS.SIMATIC S7 Configuring Hardware and Communication Connections STEP 7 V5.0 Manual.

3 毛棱,孟祥文,王淑芬等.DELPHI-p.htm" target="_blank" title="DELPHI货源和PDF资料">DELPHI 5数据库开发技术. 北京:机械工业出版社.2000.

西门子S7-300 PLC与模拟屏串行通信2009-05-26 23:061 引言

模拟屏能简单、明了地反映现场的实时数据和状态信息,应用十分广泛。为了使现场信息及时、准确、动态地显示在模拟屏上,要求数据采集设备和模拟屏之间进行通信。

现场信息量比较大,如果每个信号都独立连接到模拟屏,信号线数量多、耗线多,不经济,走线不便,故障率高,采用串行通信可克服以上缺点。

现在通信方式多种多样、速度越来越快,但串行通信在控制范畴一直占据着极其重要的地位。它不仅没有因时代的进步而淘汰,反而在规格上越来越完善、应用越来越广,长久不衰。与并行通信相比,它传输速度慢(并行一次传8位,串行传1位),但并行通信数据电压传输过程中,容易因线路因素使标准电位发生变化(常见的电压衰减、信号间互相串音干扰)。传输距离越远,问题越严重、数据错误越容易发生。相比之下,串行通信处理的数据电压只有一个标准电位,数据不易漏失。

常用的串行通信有两种,一种为rs232,另一种为rs422/485。工业环境常会有噪声干扰传输线路,在用rs232进行数据传输时,经常会受到外界电气干扰而使信号发生错误。rs232串行通信的信号标准电位是参考接地端而来的,干扰信号在原始信号和地线上均会产生影响,原始

信号加上干扰信号后,依然传送到接收端,而地线部分的信号则不能传送到接收端。因此,信号便发生了扭曲。rs422/485传输的是差分信号,在发送端分成正负两部分,到达接收端通过相减,还原成原来信号,两条信号线受到的干扰的程度相同,这就防止了噪声干扰。本文以plc和模拟屏通信为例介绍通过rs485实现点对点串行通信。

2 模拟屏的通信规约及设备

(1) 通信规约

rs232c/485串行口:速率9600bps,1位起始位,8位数据位,1位停止位,无奇偶校验位;传输报文内容以字节为单位,在信道中的传送顺序是:低字节先送,高字节后送;字节内低位先送,高位后送;数据格式为16进制数;异步通信。

(2) 设备

开关量处理器;开关量指示灯;模拟量处理器;模拟量显示器;时钟;通信处理器;中央控制器。

3 信息传输途径设备和功能

(1) 途径:数据采集通过plc完成,plc向模拟屏传输数据,控制模拟屏状态。rs485连接图如图1所示:

西门子PLC于440通讯

图1 rs485连接电缆图

(2) 主要相关设备:中央处理器cpu 314;点到点通信模块cp341-rs422/485。

(3) 功能:—向模拟屏发送模拟量数据;—向模拟屏发送开关量信息;—控制屏状态,包括:全屏亮暗、全屏信号分合、 变位帧闪光;—设定和改变时钟时间。

4 通信实现的方法

4.1 初始化

就串行通信而言,交换数据的双方利用传输在线的电压改变来达到数据交换的目的。如何从不断改变的电压状态中解析出其中的信息,双方必须有一套共同的译码方式,遵守一定的通信规则。这就是通信端口初始化。

通信端口初始化有以下几个项目必须设置或确认:

(1) 通信模式

串行通信分同步和异步两种模式。同步传输在通信的两端使用同步信号作为通信的依据,异步传输则使用起始位和停止位作为通信的判断。模拟屏通信模式:异步传输;西门子plc通信模式:异步传输;二者通信模式相同。

(2) 数据的传输速率

异步通信双方并没有一个可参考的同步时钟作为基准。这样双方传送的高低电位代表几个位就不得而知了。要使双方的数据读取正常,就要考虑到传输速率。收发双方通过传输在

线的电压改变来交换数据,但发送端发送的电压改变的速率必须和接收端的接受速率保持一致。模拟屏的通信速率:9600bps;西门子plc通信速率:600bps,1200bps,2400bps,4800bps,9600bps,19200bps,38400bps,57600bps,76800bps。初始化,将plc波特率设为:9600bps

(3) 起始位及停止位

当发送端准备发送数据时,会在所送出的字符前后分别加上高电位的起始位及低电位的停止位。接收端会因起始位的触发而开始接收数据,并因停止位的通知而确定数据的字符信号已经结束。起始位固定为1位,而停止位则有1,1.5,2等多种选择。模拟屏的停止位: 1位;西门子plc的停止位:1位或2位。初始化,将plc数据停止位设为:1位。

(4) 数据的发送单位

不同的协议会用到不同的发送单位(欧美一般用8位、日本一般用7位组成一字节),使用几位合成一字节,双方必须一致。模拟屏的数据发送单位: 8位为一字节;西门子plc的数据发送单位:7位或8位为一字节。初始化,将plc数据发送单位设为:8位。

(5) 校验位的检查

为了预防错误的产生,使用校验位作为检查的机制。校验位是用来检查所发送数据正确性的一种校对码,它分奇偶校验,也可无校验。模拟屏校验位:none;西门子plc校验位:none,odd,even;初始化,将plc校验位设为:none。

(6) 工作模式

交换数据是通过一定的通信线路来实现的。微机在进行数据的发送和接收时通信线路上的数据流动方式有三种:单工、半双工、全双工。rs232和rs422使用全双工模式,rs485使用半双工模式。模拟屏工作模式:rs232全双工/rs485半双工;西门子plc工作模式:rk512 全双工四线制(rs422);3964r全双工四线制(rs422);ascii全双工四线制(rs422);ascii半双工两线制(rs 485);初始化,将plc工作模式设为:ascii半双工两线制(rs485)。

(7) 数据流控制—握手

传输工作进行时,发送速度若大于接收速度,而接收端的cpu处理速度不够快时,接收缓冲区就会在一定时间后溢满,造成后来发送过来的数据无法进入缓冲区而漏失。采用数据流控制,就是为了保证传输双方能正确地发送和接收数据,而不会漏失。数据流控制一般称为握手,握手分为硬件握手和软件握手。模拟屏数据流控制:none;西门子plc数据流控制:none。要通过用户程序询问和控制。

(8) 错误预防—校验码

在传输的过程中,数据有可能受到干扰而使原来的数据信号发生扭曲。为了监测数据在发送过程中的错误,必须对数据作进一步的确认工作,最简单的方式就是使用校验码。模拟屏校验码:异或校验和。要在plc上编校验码程序。

4.2 数据发送

(1) 将同步字及测量值db36.dbw21开始的数据送到db42.dbw12开始的数据区去,为向串口发送做准备。程序如下:

遥测第一帧(fc36)

l w#16#eb90

传送两次同步字eb90,分别给db42.dbw12和db42.dbw14

t db42.dbw12

l w#16#eb90

t db42.dbw14

l b#16#61

//将报文类型字“61”送给db42.dbb16

t db42.dbb16 l w#16#100 //第一帧将起始地址“0100”送给db42.dbw17 t db42.dbw17 //第二帧将起始地址“0120”送给db42.dbw17 l w#16#40 //将正文字节数“40”(64字节)送给db42.dbw19 t db42.dbw19 l db36.dbw21 //第一帧将db36.dbw21开始的32个字的模拟量 caw 送到db42.dbw21开始的区域 t db42.dbw21 l db36.dbw23 caw t db42.dbw23 ??????? l db36.dbw83 caw t db42.dbw83 opn db42 //遥信校验 l p#17.0 //第二帧与第一帧相同 t md100 l dbw[md100] t mw10 l 33 t mw16 l mw16 next: t mw12 l md100 l p#2.0 +d t md100 l dbw[md100] l mw10 xow t mw10 l mw12 loop next l md100 l p#2.0 +d t md100 l mw10 t mw14

l mw14 slw 8 t dbw[md100] l mw10 aw w#16#ff00 t mw10 l mw10 l dbw[md100] xow t dbw[md100] l dbw16 t mw18 l mw18 aw w#16#ff00 t mw18 l mw18 l dbw[md100] xow t dbw[md100] (2) 将db42.dbw12开始,长度为95个字的数据送到串行端口,程序如下: //supply laddr, db_no,dbb_no,len l 256 // laddr t db40.dbw2 l 42 // db_no t db40.dbw4 t db42.dbw4 l 12 // dbb_no t db40.dbw6 t db42.dbw6 l 95 // len t db40.dbw8 t db42.dbw8 //send with instance-db call fb8 , db21 sf :=’s’ req :=db40.dbx0.0 r :=db40.dbx0.1 laddr :=db40.dbw2 db_no :=db40.dbw4 dbb_no :=db40.dbw6 len :=db40.dbw8 r_cpu_no:= r_typ := r_no :=

r_offset := r_cf_byt := r_cf_bit := done :=db40.dbx0.4 error :=db40.dbx0.5 status :=db40.dbw12 // generate edge p_snd_rk_req an db40.dbx0.0 // p_snd_rk_req s db40.dbx0.0 // set p_snd_rk_req o db40.dbx0.4 // p_snd_rk_done o db40.dbx0.5 // p_snd_rk_error r db40.dbx0.0 // p_snd_rk_req // check “complete without error” an db40.dbx0.4 // check p_snd_rk_done if p_snd_rk_done equals 0, jc cher // jump to cher and check p_snd_rk_error //”complete without error” // p_snd_rk_done=1 l db42.dbw0 //“complete without error” +1 // increment counter t db42.dbw0 nop //further user function nop nop be // check “complete with error” // p_snd_rk_error=1 cher: an db40.dbx0.5 //check p_snd_rk_error bec //if no error occurred, jump to end //“complete with error” l db42.dbw2 //“complete with error” +1 //increment counter t db42.dbw2 l db40.dbw12 t db40.dbw14 //save status nop //error-handling nop nop be

(3) 数据刷新,程序如下: an m2.4 l s5t#100ms sd t0 a t0 jnb _007 l w#16#1 l md4 rrd t md4 set save clr _007: a br = l20.0 a l20.0 a( l md4 l l#0 ==d ) jnb _008 l 1 t md4 _008: nop 0 a l20.0 bld 102 = m2.4 a( o m5.0 o m6.4 ) jnb _003 call fc36 _003: nop 0 a( o m4.0 o m5.4 ) jnb _004 call fc38

_004: nop 0

更多相关推荐:
3.4 通讯

信息技术系辅导员下寝室指导学生工作为了进一步了解学生公寓生活,做好学生公寓卫生安全工作,20xx年x月4号下午,我系xxx,xxx等老师特地来到信息系学生公寓视察学生生活。在信息系生活部几名同学陪同下,xxx,…

通讯稿;把好年关,稳定心弦

把好年关,稳定心弦时处年末,归心似箭,外地务工人员盼望过年。恰逢公司任务紧,工作重,怎样才能正确的安抚好兵心,继续奋战?我通风部在公司的正确指导下以及科长的带头下把好年关,稳定心弦。每个人都想早过年、过好年。过…

建始城乡党组织联争联创谱新曲(通讯)

农村经济基础薄弱;党员主体作用发挥不够;机关党组织活力不足;城乡党建工作整体水平差距较大。怎么办?请看——建始城乡党组织联争联创谱新曲通讯员黄义新汪奉天3年前,建始县围绕建立健全党的基层组织互帮互助机制、推进城…

干部交流会通讯稿

做人做事做学问,尽心尽力尽责任——记我院20xx级优秀毕业研究生干部经验交流会20xx年x月x日下午三点,我院20xx届毕业研究生学生干部与低年级学生干部交流会在学院研究生四教室举行。20xx级优秀研究生干部代…

长河通讯稿

长河九义校通讯稿草池镇场长河九义校召开庆祝教师节暨表彰大会9月x日,草池镇长河九义校召开了简朴而热烈的“庆祝教师节暨表彰会”,对草池镇长河九义校教育战线上涌现出来的先进工作者和十佳教师进行了表彰。大会为20xx…

廉洁文化进校园通讯稿

廉洁文化进校园—提高廉洁修身和自身素养内涵,争做优秀团干20xx年x月x日,湖南交通职业技术学院在院纪检监审处、团委和思政课部组织下,在瞿岳荣老师的主持下,为推进廉洁文化进校园在学术报告厅举办了一场“廉洁文化进…

三八妇女节通讯稿

大庙乡九年一贯制学校喜迎“三八妇女节”阳春三月,春风送暖,在第104个“三八国际妇女节”来临之际,大庙乡九年一贯制学校开展了一系列的节日庆祝活动,为全校女教职员工以及所有女生送去了节日的祝福。从3月x日下午,大…

通讯报道范文

通讯报道范文,内容附图。

通讯报道范文

通讯报道范文,内容附图。

中建公司通讯报道范文

国庆佳节战尤酣钢柱喜出正负零通讯员张江洲10月7日随着裙楼地下室第二节型钢柱的顺利吊装石家庄苏宁电器广场工程钢结构施工在项目部全体同志的协力配合下顺利冲出正负零给国庆假期奋战在一线的全体人员以极大的鼓舞由于钢结...

通讯报道写作指导范文

暑期志愿者三下乡社会实践通讯稿写作指导普通通讯稿三步走时间地点事件参与人物具体刻画事情的经过突出重点必要时要分点结束语可写活动的发展趋势或揭示活动的意义一通讯稿的语言特点1真实客观不弄虚作假不盲目夸大2事件有较...

通讯报道范文

金马油田开发公司油气集输作业区挖掘节气潜力今年年初以来辽河油田金马油田开发公司油气集输作业区积极投入到天然气挖潜劳动竞赛活动中强化日常加热炉的使用管理积极探索节能新方法截至8月底实施挖潜措施6项对比去年同期累计...

通讯(527篇)