line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;"> 上海西门子6ES7288-3AM03-0AA0模拟量模块销售中心
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;"> 上海西门子6ES7288-3AM03-0AA0模拟量模块销售中心
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
当配置好Modbus通信的参数后,保存前需要向CP341下载Modbus Slave的驱动,一旦下载完成后无需再次下载。
需要注意的是,在下载驱动时(可以在无Dongle情况下下载),需要将CPU停机,然后下载,操作过程如下所示。
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
图10 下载Dongle时,需要CPU停机
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
图11 从站驱动下载后结果
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
4.2.4 CP341做Modbus从站的编程
从Step7 软件下的EXAMPLE目录中,找到项目名“zXX21_05_PtP_Com_MODSL”的项目,打开,然后将Modbus通讯模块FB80传递到用户项目中,打开路径如下所示。
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
图12 Modbus Slave 例程打开路径
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;"> OB1中调用FB80编程如下:
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
图13 FB80程序块调用
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK为1信号,否则CP_START_ERROR为1,同时可以从ERROR_NR察看错误信息,也可以在硬件组态中在线后的CP341的诊断缓冲区察看详细的错误信息,错误信息对照和处理方式可以参考
《S7-300以用于PtP CP Modbus 协议RTU格式S7的可装载驱动程序为从站》的手册。
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;"> FB80的各参数含义如下
LADDR | 硬件组态中CP341的起始逻辑地址,本例中为256 |
START_TIMER | 初始化时定时器,本例中为T120 |
START_TIME | 初始化定时器时间,本例中为5S |
OB_MASK | I/O访问错误屏蔽位,本例中为True(I/O访问错误已屏蔽) |
CP_START | FB初始化使能位,本例中为M0.0 |
CP_START_FM | CP_START 初始化的上升沿位,本例中为M0.1 |
CP_NDR | 从CP卡写操作位,本例中为m0.2 |
CP_START_OK | 初始化完成且无错误,本例中为M0.3 |
CP_START_ERROR | 初始化完成,但有错误,本例中为M0.4 |
ERROR_NR | 错误号,本例中为MW2 |
ERROR_INFO | 错误信息,本例中为MW4 |
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
5. 通讯测试
Modbus RTU格式通信协议是以主从的方式进行数据传输的,在传输的过程中主站是主动方,即主站发送数据请求报文到从站,从站返回响应报文。Modbus 系统间的数据交换是通过功能码来控制的,以下对现场常用的功能码进行分类测试,关于功能码的详细信息请参考手册。
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
5.1 FC01/05/15功能码
CP341从站的通讯区域配置
line;font-weight:400;color:#333333;font-style:normal;text-align:left;background-color:#ffffff;text-indent:0px;">
上海西门子6ES7288-3AM03-0AA0模拟量模块销售中心