西门子串口通讯06-CP441-2在TIA博途环境中做Modbus主站通讯
西门子串口通讯-CP441-2在TIA博途环境中做Modbus主站通讯
v—x—公–众–号:工控自动化老王
- CP441接口选型
CP441通讯模块可根据实际应用选择不同接口类型的子模块,从而实现与一个或多个通讯伙伴的通讯。只有CP441-2可装载Modbus协议通信,CP441- 2 (2个可选子模块接口),子模块接口类型共分为3种。
订货号 接口类型 注释
6ES7963-1AA10-0AA0 RS232C 9针D型针接头
6ES7963-2AA10-0AA0 20mA TTY 9针D型孔接头
6ES7963-3AA10-0AA0 RS422/485 15针D型孔接头
2 .安装Dongle
应用CP441-2进行 MODBUS协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP441-2模块的背面的Dongle插槽中,Dongle和CP441-2插入Dongle的位置,如下图所示。
- 组态和配置
1、打开软件TIA PORTAL STEP7 V13,点击项目->新建…创建一新项目,项目名称为441-2_modbusM。
2、用鼠标点击“添加新设备”,选择SIMATIC S7-400->CPU->CPU 416-3PN/DP->6ES7 416-3ER05-0AB0。
3、双击“设备组态”进入硬件组态界面,导轨RACK和CPU 416-3PN/DP已经存在,但是可能RACK型号与实际一致,CPU的插槽位置也不对,这里需要手动做调整。
点击CP441-2模板,在选件目录中,选择“通信模块->点到点->PtP接口”,为CP441-2模块指定接口类型。本例中第一个接口选择RS422/RS485,第二个接口选择RS232C接口,本例对第二个接口作设置和编程。
4、双击CP441-2模板,进入CP441-2的属性框,配置CP441-2参数。
5、本例使用第二个接口,在IF963 RS232中点击“协议”,在“协议”选项中选择“Modbus主站”。配置modbus通信参数,设定的通信参数要和通讯伙伴的相同。传输率(通信波特率):9600bps,数据位:8位,停止位:1位,奇偶校验:无,其他的参数都采用默认设置。
配置完成Modbus Master协议后,点击“点到点接口”,再点击“连接到新的子网”,新建一条PtP子网,本例新建的子网名称为PTP_2。
图8
6、如果选用的是RS422/485接口时,设置与RS232基本相同,只是还需要设置接口类型,如下图所示。
7、进入网络视图,点击“连接”,看到之前图3-8创建的2个ptp连接,其中PTP_2子网的连接本地ID是16#1001(在本例中),这在编写通信程序会使用到。
点击上图中的“属性”,进入PTP_2连接的属性,将连接路径修改成“3:本地<->伙伴”。
8、设备组态,进入CPU的属性,勾选始终存储器。这在编写通信程序会使用到。
4 编写通信程序
1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,发送数据块的名称为Send,接收数据块的名称为Rev;如下图所示,发送数据块中新建几个变量,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见手册“S7串行通信模板Modbus RTU主站可装载驱动的操作说明” 6.3章节的说明;如下图所示,接受数据块中新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为401。
2、进入主程序OB1,从通信->S7通信,调用发送功能块BSEND和接收功能块BRCV。BSEND的背景数据块为DB1,BRCV的背景数据块为DB2。
CP441-2的发送功能块BSEND 的参数设置见下表。
管脚 解释描述
REQ
发送请求位,上升沿触发,本例使用M0.5,为时钟存储器的位,见图12
R
取消通讯
ID
Local ID号,在PtP连接属性中获得,本例为16#1001,见图10。
R_ID
用于在同一连接中不同块的区分,使用Modbus RTU通讯时此值的取值范围是0-255,本例使用的是DW#16#1。
SD_1
数据发送区,本例使用DB10。 也可使用其它地址和数据类型进行访问,具体信息可参考Step7 SFB12在线帮助。
LEN
发送的数据量,以字节为单位。
DONE
发送完成位,任务完成且无错误时置1
ERROR
错误位,有错误时置1
STATUS
状态字,标示错误代码,具体信息可参考模块在线诊断内容。
CP441-2的接收功能块BRCV 的参数设置见下表。
管脚 解释描述
EN_R
接收使能位,为1时允许接收,本例使用M20.0
ID
Local ID号,在PtP连接属性中获得,本例为16#1001,见图10。
R_ID
用于在同一连接中不同块的区分,使用Modbus RTU通讯时此值的取值范围是0-255,本例使用的是DW#16#1。
RD_1
数据接收区,本例使用DB11。
LEN
接收数据的长度存储区,以字节单位
NDR
接收完成位,接收无错误完成时为1
ERROR
错误位,为1时说明有错误
STATUS
状态字,标示错误代码,具体信息可参考模块在线诊断内容。
5 设备连接
若使用的是RS422/485接口,需购买一个RS232转RS485的接口转换器,连接CP441-2的RS485和计算机的RS232接口,电缆连接方法请参看手册“点对点链接CP441安装和参数分配”(见:第2章节),附录:B 连接电缆。
本例中使用的是RS232,只需购买一个RS232的电缆,直接连接CP441-2的RS232和计算机的RS232接口。
6 通信测试
前面使用 TIA Step7 软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件ModSim32软件来测试CP341和计算机的通信,步骤如下
1、双击ModSim32软件图标,新建项目,点击Port1,进入端口1做设置,本例计算机只有一个端口,所以就对端口1做设置,如果计算机有多个端口,要注意所选端口。
2、进入Port1设置界面,设置波特率、数据位、奇偶校验等参数,要和CP441-2的参数相同。
3、点击“OK”,选择软件的03功能码界面,本例设置03功能码的10个数据,其中前4个数据分别设置成1—4。
4、首先将硬件配置和程序下载到CPU 416-3PN/DP中,时钟脉冲信号M0.5从0跳变成1时,CP441-2将数据发送出去。
5、M20.0为常闭点,程序下载完成,CPU运行后,就始终处于接收状态。在STEP7中打开接收数据块DB11监控接收到的数据,可以看到发送的数据被正确的接收。
西门子串口通讯06-CP441-2在TIA博途环境中做Modbus主站通讯相关推荐
- 西门子串口通讯04-CP341在TIA博途环境中做Modbus主站通讯
西门子串口通讯-CP341在TIA博途环境中做Modbus主站通讯 1.准备工作 应用CP341进行MODBUS协议通信时需要有Dongle的支持.在使用之前先将Dongle安装在CP341模块的背面 ...
- 西门子串口通讯09-CP341在博途环境中做Modbus从站通讯
西门子串口通讯09-CP341在博途环境中做Modbus从站通讯 v-x-公–众–号:工控自动化老王 1 硬件列表 设备名称 设备型号 PS 307 6ES7 307-1EA01-0AA0 CPU 3 ...
- 西门子串口通讯05-CP441-2在Step7环境中做Modbus主站通讯
西门子串口通讯05-CP441-2在Step7环境中做Modbus主站通讯 v-x---公–众--号:工控自动化老王 1.安装Dongle Dongle的安装位置参考下图 : 2 组态和配置 1.打开 ...
- 西门子串口通讯11-CP441-2在博图环境中做Modbus从站通讯
CP441-2 使用 TIA Step7 V13 进行 Modbus Slave 通讯 作者:工控自动化老王 关注同名V–X公//众//号:工控自动化老王获取更多技术文档及工控资源,交流.学习,另外老 ...
- 西门子串口通讯10-CP441-2在STEP7环境中做Modbus从站通讯
西门子串口通讯10-CP441-2在STEP7环境中做Modbus从站通讯 v-x-公–众–号:工控自动化老王 2) CP441-2与调试软件测试通信数据 1 硬件列表 设备名称 设备型号 RACK- ...
- 西门子串口通讯08-CP341在STEP7环境中做Modbus从站通讯
西门子串口通讯08-CP341在STEP7环境中做Modbus从站通讯 v-x-公–众–号:工控自动化老王 1 硬件列表 设备名称 设备型号 PS 307 6ES7 307-1EA00-0AA0 CP ...
- 西门子串口通讯03-CP341在Step7环境做Modbus主站通讯
西门子串口通讯03-CP341在Step7环境做Modbus主站通讯 准备工作: 将Dongle插入CP341中,Dongle和插入Dongle前后的CP341如下图所示. 图1 组态和配置 1.打开 ...
- TIA博途V17中如何创建和使用VoT应用程序_Web功能
TIA博途V17中如何创建和使用VoT应用程序_Web功能 首先是TIA V17软件的安装: 下载好安装文件之后,选择"Start"双击直接安装.如下图所示, 西门子软件安装的标准 ...
- TIA博途软件中程序编辑区标题上的收藏快捷指令取消了,如何恢复显示?
TIA博途软件中程序编辑区标题上的收藏快捷指令取消了,如何恢复显示? 对于刚接触博途软件的小伙伴来说,上手还是需要一些时间的,如果在使用时,不小心把程序编辑区上方收藏的快捷指令取消了,如果进行显示呢? ...
最新文章
- C#学习之三层架构实例
- [Java基础]字符串中的编码解码问题
- JFreeChart的简单应用及乱码解决
- Ghost8.0分区备份与恢复详细图解
- 多线程笔记--原子操作Interlocked系列函数
- 【模拟遍历】剑指offer:替换空格
- java开发之权限管理详解
- 字符编码Unicode原理
- DOTA模式命令详解 及 DotA英雄英文名字和简称
- Microsoft Word 2007 向程序发送命令时出现问题解决方法
- TRS专题制作选件手册
- dw中css制作导航,四点告诉你Dreamweaver中制作漂亮导航条的方法
- C++11Lambda表达式捕获变量(Capturing the Variable)与本地变量(Local Variable)
- 精心整理的ebay大数据面试题(全)
- ZJM与生日礼物【字典树】
- linux搜狗输入法16.04,linux入门 ubuntu Ubuntu 16.04后的系统设置和软件安装(搜狗输入法、...
- 最近Oracle Cloud甲骨文上线了免费云套餐.
- 用C++写一个三人表决器
- 雷锋网专访路客网合伙人、COO王鑫光
- 扑克牌用java实现_用java开发的扑克牌游戏程序源代码
热门文章
- IDataParameter[]使用
- python课程设计心得体会2000-Python课程学习总结
- 公办低分二本_分数线最低的公办二本大学有哪些?附冷门好考的二本大学推荐...
- matlab白噪声频谱分析,matlab软件进行光谱频谱分析的方法
- 绿化和卸载 DOS 批处理
- 【源码】三相异步电动机的动态建模
- PACT: PARAMETERIZED CLIPPING ACTIVATION FOR QUANTIZED NEURAL NETWORKS
- Qt插件:QLibrary
- 前端性能优化之利用 Chrome Dev Tools 进行页面性能分析
- classical CNN models : ZF Net 模型结构详解