分享

【原创分享】 ET200系列中1510SP 1PN利用CM ptp模块进行通信

 金玉满堂jjnla8 2020-08-12

材料表

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版的教程,可以供我们参考学习。在平时,还要多去看些底层芯片驱动的知识,对于模块化功能块的管脚参数如何设置会有很大帮助。

来源/中华工控网,

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多