7
西门子6ES7341-1CH02-0AE0接线图形
西门子PLC串口通讯方法
1、RS485串口通信
三方设备大部分支持,西门子S7 PLC可以通过选择自由口通信模式控制串口通信。简单的情况是只用发送指令(XMT)向打印机或者变频器等三方设备发送信息。不管任何情况,都通过S7 PLC编写程序实现。当选择了自由口模式,用户可以通过发送指令(XMT)、接收指令(RCV)、发送中断、接收中断来控制通信口的操作。
2、PPI通信
PPI协议是S7-200CPU基本的通信方式,通过原来自身的端口(PORT0或PORT1)就可以实现通信,是S7-200 CPU默认的通信方式。 PPI是一种主-从协议通信,主-从站在一个令牌环网中。在CPU内用户网络读写指令即可,也就是说网络读写指令是运行在PPI协议上的。因此PPI只在主站侧编写程序就可以了,从站的网络读写指令没有什么意义。
3、MPI通信
MPI通信是一种比较简单的通信方式,MPI网络通信的速率是19.2Kbit/s~12Mbit/s,MPI网络多支持连接32个节点,大通信距离为50M。通信距离远,还可以通过中继器扩展通信距离,但中继器也占用节点。 MPI网络节点通常可以挂S7-200、人机介面、编程设备、智能型ET200S及RS485中继器等网络元器件。
西门子PLC与PLC之间的MPI通信一般有3种通信方式:
1) 全局数据包通信方式
2) 无组态连接通信方式
3) 组态连接通信方式
4、 PROFIBUS-DP通信
PROFIBUS-DP现场总线是一种开放式现场总线系统,符合欧洲标准和标准。PROFIBUS-DP通信的结构非常精简,传输速度很高且稳定,非常适合PLC与现场分散的I/O设备之间的通信。
5、 以太网通信
以太网的思想是使用共享的公共传输通道,这个思想早在1968年来源于厦威尔大学。 1972年,Metcalfe和David Boggs(两个都是网络)设置了一套网络,这套网络把不同的ALTO计算机连接在一起,同时还连接了EARS激光打印机。这就是世界上个个人计算机局域网,这个网络在1973年5月22日运行。Metcalfe在运行这天写了一段备忘录,备忘录的意思是把该网络改名为以太网(Ethernet),其灵感来自于“电磁辐射是可以通过发光的以太来传播”这一想法。 1979年,DEC、Inbbb和Xerox共同将网络标准化。
1984年,出现了细电缆以太网产品,后来陆续出现了粗电缆、双绞线、CATV同轴电缆、光缆及多种媒体的混合以太网产品。 以太网是目前世界上的拓朴标准之一,具有传传播速、网络资源丰富、系统功能强、安装简单和使用维护方便等很多优点。
西门子S7-300 150个问题解答之一
1:使用CPU 315F和ET 200S时应如何避免出现“通讯故障”消息?
使用CPU S7 315F, ET 200S以及故障DI/DO模块,那么您将调用OB35 的故障程序。而且,您已经接受所有监控时间的默认设置值,并且愿意接收“通讯故障”消息。 OB 35 默认设置为100毫秒。您已经将F I/O模块的F监控时间设定为100毫秒,因此至少每100毫秒要寻址一次I/O模块。但是由于每100毫秒才调用一次OB 35,因此会发生通讯故障。要确保OB35的扫描间隔和F监控时间有所差别,请确保F监控时间大于OB35的扫描间隔时间。
S7分布式系统,一直到V5.2 SP1 和 6ES7138-4FA00-0AB0,6 ES7138-4FB00-0AB0,6ES7138-4CF00-0AB0 都会出现这个问题。在新的模块中,F 监控时间设定为150毫秒.
2:当DP从站不可用时,PROFIBUS上S7-300 CPU的监控时间是多少?
使用CPU的PROFIBUS接口上的DP从站操作PROFIBUS网络时,希望在启动期间检查期望的组态与实际的组态是否匹配。在 CPU属性对话框中的Startup选项卡上给出了两个不同的时间。
3:如何判断电源或缓冲区出错,如:电池故障?
如果电源(仅S7-400)或缓冲区中的一个错误触发一个事件,则CPU操作系统访问OB81。错误纠正后,重新访问OB81。电池故障情况下,如果电池检测中的BATT.INDIC开关是的,则 S7-400仅访问OB81。如果没有组态OB81,则CPU不会进入操作状态STOP。如果OB81不可用,则当电源出错时,C PU仍保持运行。
4:为S7 CPU上的I/O模块(集中式或者分布式的)分配地址时应当注意哪些问题?
请注意,创建的数据区域(如一个双字)不能组态在过程映象的边界上,因为在该数据块中,只有边界下面的区域能够被读入过程映像,因此不可能从过程映像访问数据。 因此,这些组态规则不支持这种情况:例如,在一个 256 字节输入的过程映像的 254 号地址上组态一个输入双字。如果一定需要如此选址,则相应地调整过程映像的大小(在CPU的Properties中)。
5:在S7 CPU中如何进行全局数据的基本通讯?在通讯时需要注意什么?
全局数据通讯用于交换小容量数据,全局数据(GD)可以是:
输入和输出
标记
数据块中的数据
定时器和计数器功能
数据交换是指在连入单向或双向GD环的CPU之间以数据包的形式交换数据。GD环由GD环编号来标识。
单向连接:某一CPU可以向多个CPU发送GD数据包。
双向连接:两个CPU之间的连接:每个CPU都可以发送和接收一个GD数据包。
确保接收端CPU未确认全局数据的接收。如果想要通过相应通讯块(SFB、FB或FC)来交换数据,则进行通讯块之间的连接。通过定义一个连接,可以大简化通讯块的设计。该定义对所有调用的通讯块都有效且不需要每次都重新定义。
6:可以将S7-400存储卡用于CPU 318-2DP吗?
在通常的操作中,只能使用订货号为6ES7951-1K... (Flash EPROM)和6ES7951-1A... (RAM)的“短”> 存储卡。
7:尽管LED灯亮,为什么CPU 31xC不能从缺省地址 124 和 125 读取完整输入?
对于下列型号的CPU ,请检查 24V 电压是否接入引脚 1。LED由输入电流控制。引脚 1 上的 24V 电压需要做进一步处理。
313C (6ES7 313-5BE0.-0AB0),313C-2DP (6ES7 313-6CE0.-0AB0),313C-2PTP (6ES7 313-6BE0.-0AB0), 314C-2DP (6ES7 314-6CF0.-0AB0),314C-2PTP (6ES7 314-6BF0.-0AB0)
8:配置CPU 31x-2 PN/DP的PN接口时,当PROFINET接口偶尔发生通信错误时,该如何处理?
请确定以太网(PROFINET)中的所有组件(转换)都支持 100 Mbit/s全双工基本操作。避 配器割裂网络,因为这些设备只能工作于半双工模式。
9:在硬件配置编辑器中,“时钟”修正因子有什么含义呢?
在硬件配置中,通过CPU > Properties > Diagnostics/Clock,你可以进入“时钟”> 域内一个修正因子。这个修正因子只影响CPU的硬件时钟。时间中断源自于系统时钟,并且和硬件时钟的设定毫无关系。
10:如何通过PROFIBUS DP用功能块实现在主、从站之间实现双向数据传送?
在主站plc可以通过调用SFC14 “DPRD_DAT“和SFC15 “DPWR_DAT“来完成和从站的数据交换,而对于从站来说可以调用FC1 “DP_SEND“ 和FC2 ”DP_RECV“完成数据的交换。
11:可以从S7 CPU中读出哪些标识数据?
通过SFC 51“RDSYSST”可读出下列标识数据:
可以读出订货号和CPU版本号。为此,使用SFC 51和SSL ID 0111并使用下列索引:
1 = 模块标识
6 = 基本硬件标识
7 = 基本固件标识
12:在含有CPU 317-2PN/DP的S7-300上,如何编程可加载通讯功能块FB14("GET")和FB15("PUT")用于数据交换?
为了通过一个S7连接在使用CPU 317-2PN/DP的两个S7-300工作站之间进行数据交换,其中该S7连接是使用NetPro组态的,< 在S7通信中,调用通讯功能块。模块FB14("GET") 用于从远程CPU取出数据,模块FB15("PUT")用于将数据写入远程CPU。功能块包含在STEP 7 V5.3的标准库中。
CPU 317-2PN/DP的通讯模块FB14("GET")和FB15("PUT")的属性 :
FB14和FB15是异步通讯功能。 这些模块的运行可能跨越多个OB1循环。 通过输入参数REQFB14或FB15。 DONE、NDR或ERROR表明作业结束。PUT和GET可以同时通过连接进行通信。
注意:不能将库SIMATIC_NET_CP中的通讯块用于CPU317-2PN/DP。
13:对于紧凑CPU 313C-2 PtP和CPU 314-2 PtP作业同步处理需要注意什么?
在用户程序中,不可以同时编程SEND作业和FETCH作业。
即: 只要SEND作业(SFB 63)没有终止(DONE或ERROR),就不能调用FETCH作业(SFB 64)(甚至在REQ=0的时候)。只要FETCH作业(SFB 64)没有终止(DONE或ERROR),就不能调用SEND作业(SFB 63)(甚至在REQ=0的时候)。在处理一个主动作业(SEND作业、SFB 63或FETCH作业、SFB 64)时,同时可以处理一个被动作业(SERVE作业、SFB 65)。
14:可以将MICROMASTER 420到440作为组态轴(位置外部检测)和CPU 317T一起运行吗?
可以,但在动力和精度方面,对组态轴的要求差别非常大。在高要求情况下,伺服驱动SIMODRIVE 611U、MASTERDRIVES MC或SINAMICS S和CPU 317T一起运行。在低要求情况下,MICROMASTER系列也能满足动力和精度要求。
15:如何在已配置为DP从站的两个CPU模块间组态直接数据交换(节点间通信)?
两个CPU站配置为DP从站,而且由同一个DP主站操作,它们之间的通信通过配置交换模式为DX可以完成直接数据交换。
16:如何使用SFC65,SFC66,SFC67 和 SFC68 进行通信?
对于单向基本通信,使用系统功能 SFC67 (X_GET)从一个被动站读取数据,使用系统功能SFC68(X_PUT)将数据写入一个被动站(服务器)。这些块只有在主动站中才调用。对于一个双向基本通信,调用站中的系统功能SFC65 (X_SEND),在该站中想将数据发送到另一个主动站。在同样为主动的主动接收站中,数据将通过系统功能SFC66 (X_RCV)记录。
两种类型的基本通信中,每次块调用可以处理多 76 字节的用户数据。对于S7-300 CPU,数据传送的数据一致性是 8 个字节,对于S7-400 CPU则是全长。 如果连接到S7-200,考虑到S7-200只能用作一个被动站。
17:什么是自由分配 I/O 地址?
地址的自由分配意味着您可对每种模块(SM/FM/CP)自由的分配一个地址。地址分配在 STEP 7 里进行。先定义起始地址,该模块的其它地址以它为基准。
自由分配地址的优点:因为模块之间没有间隙,就可以优化地使用可用地址空间。在创建标准软件时,分配地址过程中可以不考虑所涉及的 S7-300 的组态。
18:诊断缓冲器能够干什么?
快地识别故障源,因而提高系统的可用性。评估STOP之前的后事件,并寻找引起STOP的原因。
诊断缓冲器是一个带有单个诊断条目的循环缓冲器,这些诊断条目显示在事件发生序列中;个条目显示的是近发生的事件。如果缓冲器已满,早发生的事件就会被新的条目所覆盖。根据不同的CPU,诊断缓冲器的大小或者固定,或者可以通过HW Config中通过参数进行设置。
19:诊断缓冲器中的条目包括哪些?
1)故障事件
2)操作模式转变以及其它对用户重要的操作事件
3)用户定义的诊断事件(用SFC52 WR_USMSG)
在操作模式STOP下,在诊断缓冲器中尽量少的存储事件,以便用户能够很在缓冲器中找到引起STOP的原因。因此,只有当事件要求用户产生一个响应 (如计划系统内存复位,电池需要充电)或注册重要信息(如固件新,站故障)时,才将条目存储在诊断缓冲器中。
20:如何确定MMC的大小以便完整地存储STEP 7项目?
为了给项目选择合适的MMC,需要了解整个项目的大小以及要加载块的大小。可以按照如下所述的方法来确定项目的大小:
1)归档STEP 7项目。然后在bbbbbbs资源浏览器中打开已归档项目,并确定其大小(选中该项目并右击)。这会告诉您归档文件的大小。
2)将块加载入CPU。现在仍然需要选择"PLC > Module Inbbbbation > Memory"。在此,在" Load memory RAM + EPROM"中,可以看到分配的加载内存的大小。
3)将该值和已经确定的归档项目的大小相加。这样就可以得出在一个MMC上保存整个项目所需的总内存的大小。
21:CPU复位后哪些设置会保留下来?
复位CPU时,内存没有被删除。整个主内存被删除了,但加载内存中数据,以及保存在Flash-EPROM存储卡(MC)或微存储卡(MMC)上的数据,则会全部保留下来。除了加载内存以外,计时器(CPU 312 IFM除外)和诊断缓冲也被保留。具有MPI接口或一个组合MPI/DP接口的CPU只在全部复位之前保留接口所采用的当前地址和波特率。另一方面,另一个PROFIBUS地址也被删除,不能再访问。
重要事项:重新设置PG/PC之后,与CPU之间的通讯只能通过MPI或MPI/DP接口来建立。
22:为什么不能通过MPI在线访问CPU?
如果在CPU上已经改了MPI参数,请检查硬件配置。可以将这些值与在"Set PG/PC interface"下的参数进行比较,看是否有不一致。
或者可以这样做:打开一个新的项目,创建一个新的硬件组态。在CPU的MPI接口的属性中为地址和传送速度设置各自的值。将"空"项目写入存储卡中。把该存储卡插入到CPU 然后重新打开CPU的电压,将位于存储卡上的设置传送到CPU。现在已经传送了MPI接口的当前设置,并且像这样的话,只要接口没有故障就可以建立连接。这个方法适用于所有具有存储卡接口的S7-CPU。
23:错误OB的用途是什么?
如果发生一个所描述的错误(见文件1),则将调用并处理相应OB。如果没有加载该OB,则CPU进入STOP(例外:OB70、72、7 3和81)
S7-CPU可以识别两类错误:
1)同步错误: 这些错误在处理特定操作的过程中被触发,并且可以归因于用户程序的特定部分。
2)异步错误: 这些错误不能直接归因于运行中的程序。这些错误包括级类的错误,自动化系统中的错误(故障模块)或者冗余的错误。
24:在DP从站或CPU315-2DP型主站里应该编程哪些“故障 OBs”?
在组态一个作为从站的CPU315-2DP站时,在STEP7程序中编程下列OB以便评估分布式I/O类型的错误信息:
OB 82 诊断中断 OB 、OB 86 子机架故障 OB 、OB 122 I/O 访问出错
1)诊断OB82:如果一个支持诊断,并且已经对其释放了诊断中断的模块识别出一个错误,它既对进入事件也对外出的事件向 CPU 发出一个诊断中断的请求。操作系统然后调用 OB82。在 OB82 自己的局部变量里包含有有缺陷模块的逻辑基地址和 4 个字节的诊断数据。如果你还没有编程 OB82, 则 CPU 进入“停止”模式。你可以阻断或延迟诊断中断 OB ,并通过 SFC 39 - 42 重新释放它。
2)子机架故障OB86:如果识别出一个 DP 主站系统或一个分布式 I/O 站有故障(既对进入事件也对外出的事件),该 CPU 的操作系统就调用 OB 86 。如果没有编程 OB 86 但出现了这样一个错误, CPU 就进入“停止”模式。你可以阻断或延迟 OB86 并通过 SFC 39 - 42 重新释放它。
3)I/O 访问出错OB122:当访问一个模块的数据时出错,该CPU的操作系统就调用OB 122。比方说,CPU在存取一个单个模块的数据时识别出一个读错误,那么操作系统就调用OB 122。该OB 122以与中断块有相同的级类别运行。如果没有编程OB 122,那么CPU由“运行”模式改为“停止”模式。
25:为什么在某些情况下,保留区会被重写?
在STEP 7的硬件组态中,可以把几个操作数区定义为“保留区”。这样可以在掉电以后,即使没有备份电池的话,仍能保持这些区域中的内容。如果定义一个块为 “保留块”,而它在 CPU 中不存在或只是临时安装过,那么这些区域的部分内容会被重写。在电源接通/断开之后,其他内容会在相关区里找到。
26:为何不能把闪存卡的内容加载入S7 300 CPU?
你的项目在闪存卡上。现在要用它加载 S7 300 。但加载结束后发现 CPU 的 RAM 中仍是空的。出现此问题的原因是你的程序里有无法处理的,"错误的"组织块(比如说, OB86 没有 DP 接口)。 在重新设置和重新启动 CPU 后, RAM 仍是空的。 诊断缓冲区对这个"无法加载"的块会提示一些信息。
27:当把 CPU315-2DP 作为从站,把 CPU315-2DP 作为主站时的诊断地址
在组态一个 CPU315-2DP 站时,你使用 S7 工具 “H/W CONFIG” 来分配诊断地址。如果发生一个故障,这些诊断地址被加入诊断 OB 的变量 “OB82_MDL_ADDR” 里。 你可在 OB82 里分析此变量,确定有故障的站并作出相应的反应。
下面是如何分配诊断地址的例子:
1 步: 通过 CPU315-2DP 组态从站并赋予一个诊断地址,比如 422。
2 步: 通过 CPU315-2DP 组态主站
3 步: 把组态好的从站链接到主站并赋予一个诊断地址,比如 1022。
28:需要为S7-300 CPU的DP从站接口作何种设置,才可以使用它来进行路由选择?
如果使用CPU作为I-Slave,并且该CPU也起S7 路由器的作用,那么请注意如下事项:
用于路由选择的从站的DP接口设置为活动状态。这可以在HW Config中完成:在DP接口的属性对话框中,选项" Commissioning/Test operation"或"Programming, status/modify..."。关于这些设置的注意事项可以在下表中获得。
对于S7 路由连接,有 4 种可用的连接资源-与其它任何连接资源无关。没有使用PG/OP的连接资源或S7基本通信。
如果通过DP接口来建立一个与位于其机架上的通信伙伴连接时(如在 CP 343-1 中),也要使用一个路由连接。而对于通过MPI接口与一个位于其机架上的通信伙伴的连接,则不使用路由连接资源,因为在这种情况下,能够直接到达伙伴。注意事项:这不适用于CPU 318。
29:为什么当使用S7-300 CPU的内部运行时间表时,没有任何返回值?
当对CPU 312IFM到316-2DP参数化系统功能块 SFC2, SFC3 和 SFC4 时,为一个运行时间表规定了一个大于 "B#16#0"的标识符,那么将出错并且所需的功能也无法用。 此种情况下,将在块的" RETVAL"输出处输出标识符 "8080h" 。
说明:对于这些 CPU,只有一个计时器可用。因此你应该只用标识符 "B#16#0"。 在一个周期块(OB1, OB35)里一定不能调用系统功能 SFC2 "SET_RTM",而是应该在重启动OB(OB100)调用它。你也可以通过外部触发器来启动该块。不然的话,该块将老是复位运行计时表,永远完成不了计数。



1 概述
CP341模块是西门子S7—3001400系列PLC中的串行通讯模块。该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯大距离位1200m。支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接头。可以使用这种通讯模块实现S7300/400与其它串行通讯设备的数据交换。例如打印机、扫描仪、仪表、Modbus主从站、Data Highway站、变频器。USS站等。CP341模块可以同时与多台串行通讯设备进行通讯。如同时连接多个变频器、连接多个智能仪表等。如果采用RS422/485 modbus RTU通讯方式,需要在发送的数据包中包括站号、数据区、读写指令等信息。供CP341模块所连接的从站设备鉴别数据包是发给哪个站的。以及该数据包是对那个数据区进行的读或写的功能。
Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已
经成为一通用工业标准,有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程。如回应来自其它设备的请求,以及怎样侦测错误并记录等。它了消息域格式和内容的公共格式。MODBUS为单主站网络协议,所以系统中只能够有一个Modbus主站,所有通信都由它发出并且只能够实现主站和从站的数据交换,从站之间不能进行数据交换,Modbus可支持247个之多的远程从属控制器。但实际所支持的从机数要由所用通信设备决定。采用这个系统。各PC可以和主机交换信息而不影响各PC执行本身的控制任务。CP341插人MODBUS主站Dongle(狗)或插入从站Dongle,就可以作为MODBUS主站。或者作为MODBUS从站。在ModBus系统中有两种传输模式编码可选择,一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备),由这两种模式定义这两种传输模式与从机PC通信的能力是同等的。选择时应视所用ModBus主机而定。每个ModBus系统只能使用一种模式。不允许两种模式混用。 字串8
2 RTU帧结构
使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在相同的网络波特率下采用多个的字符时间,这是实现的。传输的个域是设备地址,可以使用的传输字符是十六进制的0...9,A...F。网络设备不断侦测网络总线,包括停顿间隔时间内。当个域(地址域)接收到后,每个设备都进行解码以判断是否发往自己的,在后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束.一个新的消息可在此停顿后开始。整个消息帧作为一连续的流转输,如果在帧完成之前有过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是消息的延续,这将导致一个错误,因为在后的CRC域的值不可能是正确的。一典型的消息帧如下所示:
起始位:T1-T2-T3-T4
设备地址:8 Bit
功能代码:8 Bit
数据:N个8 Bit
CRC校验:16 Bit
结束符:T1-T2-T3-T4
3 RS422/485网络工作过程
基于Modbus主从式工作的主站以广播式的向所有从站发送请求数据的数据包.其数据包中包含从站地址、功能代码(即读取的寄存器类型)、要读取 字串2
的寄存器的起始地址、该次要读取的寄存器个数。并等待从站的响应;挂在同一条RS485总线上的所有从站被动的接收到主站的广播包.然后解开这个广播包把这个包中的从站地址与自己的地址对照.如果地址相同.该从站马上把自己相应寄存器中的数据发送到总线上去:主站中的接收程序始终处于待命状态.等待总线上从站发送来的响应数据包,并把响应包中的数据序列化到自己的接收数据块中。从站到包中的从站地址与自己的地址不符时,则直接销毁该包.就不做任何响应。到此完成一个发送接收数据的过程。
4 CP341驱动配置
在您的计算机上安装STEP7 5.x软件和CP34x模板所带的软件驱动程序.模板驱动程序包括了对CP341进行参数化的窗口(在STEP7的硬件
组态界面下可以打开)、用于串行通讯的FB程序块。当系统上电,CP34x模板初始化完成后,CP34x上的sF灯点亮:
在硬件组态窗口中双击CP341模板,打开CP341模板的属性窗口,选择通讯协议modbus,网络工作方式设置为半双工,请记录下模板的硬件地址
以便在编程序时用到。双击CP341模板属性窗口中的protocol 协议图标进行协议参数设置,这里我们使用默认值:96oo bit,s, 8 data bits, 1 stop bit,even parity。对的硬件组态存盘编译,下载硬件组态.如果此时sF灯亮.请将通讯电缆与另一个通讯伙伴进行连接后.SF灯熄灭,说明硬件组态正确。
5 程序编写
(1)CP341发送模块的设计而发送程序主要是通过调用功能块FB8来实现,FB8是基于上升沿触发工作的.来一个上升沿FB8工作一次向总线上发
送一个请求数据包,所以在程序中一定要设计一个触发代码段,来不断的使REQ:=M50.0循环往复的置“1”置“0”,这样FB8就可以正常运行了。
在设计程序时一定要注意FB8的参数SF:=‘S’及R_TYP:=‘X’的值都是大写否则程序调试不成功。FB8需要一个背景数据块.这一背景数据块一般由系统自动生成.以上程序中为DB3;对于通过CP34 1的Modbus Master驱动通讯的发送模块需要设计发送数据块DB块.用来对主站发送参数进行设置和初始化。
字串6
Modbus能够实现的功能代码共有10个.分别针对不同的寄存器读写功能设置.功能代码Initial value:B#16#4的功能是读从站的输出数据寄存器
整数型、状态字或浮点型数据:寄存器的起始地址Initial value:W#16#0是功能代码规定的寄存器的起始地址;读取寄存器的数目Initial value:4的意义是从起始地址开始总共读取4个寄存器。
(2)CP341接收程序的设计
接收程序是调用FB7来实现的,由于CP341可以处理接收程序的细节部分.因此对于设计者来说只需要进行简单的设计就可以实现数据的接收。接
收程序同样也需要设计背景数据块本例中为Db44块和接收数据块本例中为DB5块。
(3)装载设计好的发送接收程序FC 1与FC2。
6 参数化远程从站RTU .
以上介绍的是Modbus主站的应用与程序设计,没有对远程终端RTU从站进行介绍.其实在进行程序调试时对从站进行一些参数设置使其参
数与主站要求的一致,包括协议类型、从站地址、寄偶校验、传输时等,否则通讯很难成功。
7 总结
随着仪表自动化技术的提高,带各种通讯接口设备和现场总线设备将被大量应用到工业现场领域,使全数字化、串行、双向、互操作多快好省的远距离大数据量通讯成为可能.为数据监控和管理监控现场数据及现场设备工作状态和分析挖掘数据关系提供了方便。Modibus RTU通讯是现场总线实现的一个简单例证,成功的解决了现场仪表数据和PLC通讯问题,节省了因标准仪表信号布线所需的大量电缆,并且性得到了大幅度提高。是我们今后现场信号采集通讯值得借鉴的一个典型代表。