如何对一个使用 3964R 协议和 CP340 的点对点通讯进行参数化和编程?

n

描述
要参数化点对点连接,需要使用参数化软件 "CP PtP Param"。用于参数化的软件 "CP PtP Param" 的下载请参考条目号:27013524
按照如下步骤参数化和组态:

序号 步骤
1. 创建一个 S7项目,插入 S7-300 站。
2. 打开硬件组态,添加机架,电源,CPU 和 CP 340。
3. 单击 CP 340 并且在菜单中选择 "Edit> Object Properties..." 或者双击 CP 340。打开 CP 340 的属性对话框。
4. 不必在 "General","Addresses"和 "Basic Parameters" 选项卡中作任何设置。点击 "Parameter..." 按钮来参数化 3964R 协议。 n

如何对一个使用  3964R 协议和 CP340 的点对点通讯进行参数化和编程?
图. 01

5.在协议选择栏中选择 3964 (R) 协议。
点击信封图样的矩形然后按“回车”键或者双击该图标,打开“协议”对话窗口。 n

如何对一个使用  3964R 协议和 CP340 的点对点通讯进行参数化和编程?
图. 02

6.在“协议”对话框中设置协议参数。除了优先级外,所有的参数必须与通讯伙伴的 参数相匹配。如果将优先级设置为高,那么通讯伙伴侧的优先级必须设置为低。
点击"OK" 按钮保存设置。 n

如何对一个使用  3964R 协议和 CP340 的点对点通讯进行参数化和编程?
图. 03

7.关闭参数化软件 "CP PtP Param" 。
8.在CP340 属性对话框中,点击 "OK" 按钮保存设置。
9.保存和编译硬件组态,并且下载组态到 S7-300 CPU 中。

表 01

n

编程
在本例中,做了一个简单的点对点连接的程序。对于使用 CP340的点对点连接,需要使用标准功能块 FB3 "P_SEND"和 FB2 "P_RECV"。该功能块位于程序库 "CP PtP" 的 "CP 340 > Blocks" 目录下。n

如何对一个使用  3964R 协议和 CP340 的点对点通讯进行参数化和编程?
图. 04n

功能块 FB2 "P_RCV" 允许接收来自一个通讯伙伴的数据并把它们保存在一个数据块中。功能块 FB2 "P_RCV" 的输入输出参数如下:

名称 类型 数据类型 注释 取值范围,备注
EN_R INPUT BOOL 使能数据接收 常量"1"
R INPUT BOOL 作业中断 中断当前作业,禁止接收。
LADDR INPUT INT CP 340 的基础地址 从 STEP 7 组态中获得的基础地址。
DB_NO INPUT INT 数据块编号 接收数据块:取值范围随 CPU 类型而定,不能为 0
DBB_NO INPUT INT 数据字节编号 0 <= DBB_NO <= 8190,自该字节起接收数据
NDR OUTPUT BOOL 作业完成,没有出错 参数 "STATUS" 值为 W#16#0000。
ERROR OUTPUT BOOL 作业完成,出现错误 参数 "STATUS" 包含错误信息。
LEN OUTPUT INT 接收到的报文的长度 1 <= LEN <= 1024,
单位是字节
STATUS OUTPUT WORD 错误代码 当ERROR = 1 时,在参数 "STATUS" 中包含错误信息。

表 02

n

功能块 FB3 "P_SEND" 允许发送一个完整的数据块,或者数据块的部分区域到一个通讯伙伴中。
功能块FB3 "P_SEND" 的输入输出参数如下:

名称 类型 数据类型 注释 取值范围,备注
REQ INPUT BOOL 触发作业 使用上升沿触发作业
R INPUT BOOL 作业中断 当前作业被中断,禁止发送。
LADDR INPUT INT CP 340 的基础地址 从 STEP7 中获得的基础地址
DB_NO INPUT INT 数据块编号 发送数据块:取值范围随 CPU 类型而定,不能为 0
DBB_NO INPUT INT 数据字节编号 0 <= DBB_NO <= 8190,自该字节起发送数据
LEN INPUT INT 数据长度 1 <= LEN <= 1024,单位为字节
DONE OUTPUT BOOL 作业完成,没有出错 参数 "STATUS" 的值为 W#16#0000。
ERROR OUTPUT BOOL 作业完成,出现错误 参数 "STATUS" 包含错误信息。
STATUS OUTPUT WORD 错误代码 当 ERROR = 1 时,在参数 "STATUS"中包含错误信息

表 03

功能块FB2 "P_RCV" 的状态参数 NDR,ERROR,LEN 和 STATUS 和功能块 FB3 "P_SEND" 的参数 DONE,ERROR 和 STATUS 只在一个循环周期内有效。

程序结构
功能块 FB3 "P_SEND" 和 FB2 "P_RECV" 在功能 FC1 中被调用。FB3 "P_SEND" 发送数据块 DB4中起始地址为字节 DBB 0 的12 个字节的数据到通讯伙伴中。FB2 "P_RECV" 从通讯伙伴中接收数据。接收的数据存储在 DB4 中,并以 DBB 12 为起始地址。数据的传输是周期性的触发。发送过程不断地进行,当一个发送作业完成后,立即触发新的作业。

如何对一个使用  3964R 协议和 CP340 的点对点通讯进行参数化和编程?
图. 05

本例中,CP 340 设置了如下协议相关的参数:

  • 波特率:9600 bits/s
  • 数据位:8
  • 停止位:1
  • 偶校验
  • 优先级高,因此必须将通讯伙伴的优先级设置为低

STL 源程序

如何对一个使用  3964R 协议和 CP340 的点对点通讯进行参数化和编程? pzp340_3964r.pdf ( 6 KB )

下载
下载中包含 "PtP_CP340.zip" 归档项目。
复制 "PtP_CP340.zip" 文件到单独的文件夹中,并双击文件。然后可以使用 STEP 7 来打开和处理解压的项目数据。

如何对一个使用  3964R 协议和 CP340 的点对点通讯进行参数化和编程? PtP_CP340.zip ( 297 KB )

创建环境
本 FAQ 中的图片和相关的下载是在 STEP 7 V5.5 SP3 中创建的。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc340522.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论