546387563879638
然后在下一个网络中添加从站操作指令 “Modbus_slave”,为该 FB块增加一个背景数据块,本例中为 DB2 初始化功能块 “Modbus_Comm_Load”细节部分: 从站操作指令 “Modbus_slave”,细节部分: 新建DB4数据块,从站指针指向DB4 重点来喽: [打开初始化功能块 “Modbus_Comm_Load”的背景数据块(DB1):找到MODE项并改为“4”(这里要注意)模式。] 具体说明: 选择接口类型和创建数据块 ET200SP CM PTP模块支持 RS 232,RS 422和 RS 485接口,根据通信对象 的不同,需要将模块设置为不同的工作模式,有效的工作模式包括: 0 = 全双工 (RS232) 1 = 全双工 (RS422) 四线制操作(点对点) 2 = 全双工 (RS 422) 四线制模式(多点主站,CM PTP (ET 200SP)) 3 = 全双工 (RS 422) 四线制模式(多点从站,CM PTP (ET 200SP)) 4 = 半双工 (RS485) 二线制模式 本例中以 485为例,则需要在功能块“Modbus_Comm_Load”的背景块DB1 中找到“MODE”参数,并将其启动值改为 4。 如果采用半双工(RS485)两线制,必须要改成4,这是跟西门子技术支持确认过的。单单在硬件组态时设置,是不行的。也是这个不起眼的地方让我失败了好多次呢。 下载程序到CPU, 然后用串口助手Commix软件发码: 读保持寄存器命令码:01 03 00 00 00 0C 45 CF 得到应答回码: 01 03 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C F4 成功通讯。如下图: 然后接入我们自己开发的主站,完活。 最后总结一下吧: 其实这次通讯并不顺利,大多时间都浪费在CMptp接口模块上了。在应用上,一款陌生的产品我们应该如何更加快速的上手呢,个人认为还是多读些手册,而且要有技巧地看;再有就是一般手册中都会提供一些程序例程的链接或PDF版的教程,可以供我们参考学习。在平时,还要多去看些底层芯片驱动的知识,对于模块化功能块的管脚参数如何设置会有很大帮助...... |
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.