材料表 CPU 1510SP-1 PN(6ES7 510-1DJ01-0AB0)(固件版本目前为2.6) CM ptp模块 6ES7 510-1DJ01-0AB0 DI 8x24VDC ST (6ES7 131-6BF01-0BA0) DQ 8x24VDC/0.5A ST (6ES7 132-6BF01-0BA0) 服务器模块 (6ES7 193-6PA00-0AA0) 一般我个人习惯,在拿到新的模块后,都先去下份手册看看,一来看看外部接线,二来看看模块的一些性能参数,最后就是软件编程的例子。 这里着重看了下CM PTP接口模块的手册,如下: 大概看了一下手册。手册里也有一些例程供参考,本实例中区别在于,ET200系列自带了1510SP的cpu,并不是IO-device站,可以自行处理计算。所以只需要在CPU中编写通信指令,驱动起接口模块CM ptp模块就可以了。那么开始吧! 硬件接线(实物)。 接线完成,上电,开始软件组态。 选中CM ptp1模块,新的电池组是白色的。 分配子网和IP地址: 硬件完成编译下载;然后开始软件编写。 在这里我们着重讲一下,CM PTP的驱动模块的应用: 习惯上在main(OB1)中调用FC子程序,如图,在main(OB1)中调用FC4块(通讯逻辑段),然后在通讯逻辑段中,来编写CM PTP的驱动程序。 如下图: 开始通讯逻辑段(FC4块): 添加 Modbus RTU 初始化功能块 “Modbus_Comm_Load”,并为该FB块增加一个背景数据块,本例中为 DB1 “Modbus_Comm_Load _DB”; 然后在下一个网络中添加从站操作指令 “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版的教程,可以供我们参考学习。在平时,还要多去看些底层芯片驱动的知识,对于模块化功能块的管脚参数如何设置会有很大帮助。 来源/中华工控网, |
|
来自: 金玉满堂jjnla8 > 《S7_1500》