1.使用 CPU 的内部 DP 接口通讯与使用 CP342-5 通讯之间的不同
当使用 CPU 的内部 PROFIBUS 接口或 CP443-5 EXT PROFIBUS 接口 (参见图 1) 时,可以使用装载/传送命令 (参见图 2) 或系统功能 SFC14/15 来访问数据。
( 53 KB ) 
01:集成 DP 接口作为 DP 主站
注释:
在条目号 689920 的条目“CPU (例如 CPU 315-2 DP) CP 342-5 中的 DP 接口之间的区别”中详细介绍了此主题。
( 54 KB )   
02:访问 CPU 的内部 DP 接口
如果正在使用 CP342-5,则无法使用 装载/传送命令或位组合操作访问从站上的数据。在这种情况下,I/O 数据通讯分两步进行。首先从 CPU 中传送数据到 CP,然后再从 CP 中传送数据到从站 (对于读操作,顺序相反)。从 CP 到从站的数据传送是自动进行的。用户必须自己处理 CPU CP 的数据传送。此处,有两个特殊功能可用于此操作。
( 60 KB )   
03CP 342-5 DP 主站
注释:
在将 CP342-5 添加到硬件配置时系统将会给出此信息:
( 20 KB ) 
04:关于使用通讯块的注意事项
CPU CP342-5 之间的通讯是通过 FC 1DP_SEND”和 FC 2DP_RECV”实现的。必须为两个函数都分配参数“CPLADDR”,而将参数“SEND”分配给函数 FC 1,将参数“RECV”分配给参数 FC 2
2.CPLADDR”输入的含义和参数设置
为参数“CPLADDR”指定通讯处理器的模块起始地址。从硬件配置中获得此 16 字节地址。
( 61 KB )   
05CP342-5 的模块地址
此地址的长度 (16 字节) 对于要在此主站系统上运行的从站数,要寻址的 I/O 区域的大小,或者 I/O 数据区将从哪个点开始都没有任何影响。CPU 使用此值来寻址模块 (此处是 CP342-5);但该值与所连接的 DP 从站的 I/O 地址没有任何关系
必须在“DP_SEND”和“DP_RECV”中指定此地址,因为这样才能在一个 CPU 上运行多个 CP,以及指定用于指示 CP DP 主站系统进行数据交换所使用的块的参数。
在使用此参数时,必须确保从硬件配置 (仅指定的地址区的起始地址与此相关) 中以十六进制格式为“CPLADDR”指定了十进制数值。
下图说明了如何为在图 T2-01 中组态的 CP 342-5 调用通讯块 FC 1 FC 2
( 53 KB )   
06FC 1 FC 2 的参数设置
3.SEND”和“RECV”输入的参数设置
对于“SEND”参数,需要指定包含要传送到从站的数据的数据区。在此处仅指定数据源。“RE
CV”参数的情况正好相反。此处仅指定要用于存储来自从站的数据的数据区域。对于如何将数据写入 I/O 或者如何从那里得到数据将会在第 5 节中介绍。
SEND”和“RECV”参数需要以“ANY”格式 (例如“P#DB1.DBX3.0 BYTE 37) 指定一个指针。在此实例中,该指针指向数据块 DB1 的字节 3 0 位。“BYTE 37”以字节为单位指定要传送的数据域的长度。
ANY”格式原则上允许其它长度格式。但是,对于“DP_SEND”和“DP_RECV”函数,则必须以字节为单位指定。
( 53 KB )   
07FC 1 FC 2 的参数设置
4.评估函数 FC 1 FC 2 的反馈值
DP_SEND”函数具有参数“DONE”、“ERROR”和“STATUS”,用于指示数据传送的状态和是否成功。“DP_RECV”函数具有参数“NDR”、“ERROR”、“STATUS”和“DPSTATUS”,用于指示数据传送的状态和是否成功。因此,应该分配相关变量给这些参数,以便能够评估状态。在图 8 中,这些参数被链接到存储器区域。但是,也可以将这些参数链接到数据块中的存储区域 (参见第 5 节中的图 10 和图 11)
( 57 KB )   
08FC 1 FC 2 的参数设置
下列要点适用于这两个函数:
只有在“ERROR”参数数值为“False”,“STATUS”参数 数值为“Zero”,而“DONE”或“NDR”参数数值为“True”时,数据传送才成功完成。
注意事项:
由于函数是循环调用的,如果没有错误发生,“STATUS”参数的数值会在 0 8180H 之间变化。当“STATUS”参数的数值为 8180H 时,“DONE”参数也会变成数值“False”。
如果数据传送没有成功完成,则不论数据是否与该从站有关,都不会有从站与 DP 主站进行数据交换。当通讯发生故障时,此 DP 主站系统的整个 I/O recv函数区域 - 即,所连接的所有 DP 从站 - 都会失效。
关于各个状态的详细信息,可以在 STEP 7 在线帮助 (在块容器中选中 FC 1/FC 2 > 按下“F1”健) 中到。
5.CPUCP DP 从站的 I/O 区域之间的数据通讯
不论是使用“DP_SEND”函数,还是使用“DP_RECV”函数,都无法指定要从中读取数据或要往其中写入数据的从站。不能使用 CP342-5 直接访问单个从站。
CP 自身有一个内部数据存储区,用于存储从站的 I O 区域的数据;在最新的 CP 中,每个区域最大可达 2160 个字节 (此处还可以参见 STEP 7 在线帮助)。系统会周期性地将此数
据区域复制到整个 I/O 处理器区,或者读取整个 I/O 处理器区。因此,对于 2160 个字节的数据区来讲,可以在 I/O 处理区域中预设的最大地址是 2159
可以使用函数“DP_SEND”和“DP_RECV”获得对此内部数据存储区的读取和写入访问。
在设置指针的参数时,指定要传送的数据区的长度。数据区从 I/O 地址 0 开始,通过 CP 的内部数据存储区写入到 I/O 地址区,或者从中读取数据。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。