当前位置:文档之家› ASCMODMAS for STEP7 manual_CP340

ASCMODMAS for STEP7 manual_CP340

STEP7下

ASCII模式Modbus Master的实现

CP340

V1.0

姜华峰

Dixinke@https://www.doczj.com/doc/7a3957987.html,

2011年10月修订

一,概述

本文描述的库文件用于在没有Dongle的情况下,使用标准Modbus RTU协议,进行通讯的方式。

使用范围:

1)S7-400系列CPU,以ET200M方式使用CP340,进行Modbus RTU 的Master方式通讯。

2)S7-300系列CPU,使用CP340,进行Modbus RTU 的Master方式通讯。

3)本库适用于STEP7下的通讯实现,在STEP7中放在OB1中,如果程序量较大,建议放在较快的中断中执行,如OB35或更快。

本模块实现了一下功能:

1,无需西门子dongle;

2,支持1~6,15,16命令;

3,支持modbus冗余;

4,可以对每条命令设置超时时间;

5,循环时间可设;

6,每条命令单独返回故障;

7,设定简便,易学易用。

关于您拿到的ZIP文件的使用方法:

您拿到的zip文件是通过step7软件的压缩方法压缩而成的库文件,必须使用step7的解压缩方法将文件解出来,然后复制所有的块到项目中,就可以根据手册中的方法使用这些库了。

压缩、解压缩

二,硬件设置

1,建立STEP7项目,配置硬件,注意配置的硬件必须和现场实际相同

配置完成后,请记住卡件的起始地址(本例中为528)。

注意:本软件支持最新的1CH02版本卡件2,双击340卡件进行配置

3,点击Parameter

在protocol中选择ASCII协议,出现以上的配置界面4,双击Protocol的信封

配置通讯参数,注意要保持与通讯方的所有的通讯参数的一致性,否则将无法通讯。

注意:CP340的通讯速率只支持2400,4800和9600,因使用背板供电工作,通讯距离有限。

5,选择Interface选项,选择硬件的通讯接口方式

根据通讯伙伴的方式来选择通讯的硬件方式,422、485或232(注:如果使用232方式,请选择带232口的CP340的卡件)

选择了422方式的硬件接线方式如下:

电缆长度超50米时在接收端(R(A)和R(B)之间)加入330?电阻,RS485两线操作时只有pin4,pin11有效。如果接线错误,在CP340、341、441硬件诊断中会提出"端口:接收线断"

如果不能提供很好的单端通讯接地,请将接地浮空,否则可能影响通讯。

选择485方式的硬件接线方式如下:

电缆长度超50米时在接收端(R(A)和R(B)之间)加入330?电阻。如果接线错误,

在CP340、341、441硬件诊断中会提出"端口:接收线断

如果不能提供很好的单端通讯接地,请将接地浮空,否则可能

影响通讯。

选择了232方式的硬件接线方式如下:

如果不能提供很好的单端通讯接地,请将接地浮空,否则可能

影响通讯。

6,在完成后,保存并下载到PLC中,注意,如果CP340的通讯口上没有连接设备的时候,CP340的SF可能长亮,当正常通讯的时候,SF灯灭,TXD(发送灯)和RXD(接收灯)灯将交替的闪烁。

三, 功能模块

1,无CPU限制的功能块

主循环模块(FB1070:MODMAS_STEP7_CP340)【测试版本FB1072:

MODMAS_STEP7_CP340_TEST】

主循环块是Modbus Master库的功能实现块。

参数类型性质描述

IN

第一块CP卡的起始地址

LADDR INT

第二块CP卡的起始地址

IN

LADDR2 INT

冗余设置,1=冗余,0=非冗余

IN

Redn_EN BOOL

特殊字符,须设定为’J’,必须是大写

IN

BLKTYPE CHAR

特殊数字,测试版本为1,正式版本参见授权LIN INT

IN

Switch_ERRNUM INT IN 冗余模式下,切换CP卡的累计错误次数设定,

最小设定为5

IN

每条命令的等待时间设定,默认500ms,0ms SysCycTime TIME

=停止

命令启动位

STRT_SEQ BOOL

IN

工作数据块号

WORK_DB INT

IN

故障显示(保留位,目前无显示)

OUT

QERR BOOL

命令故障信息,可用

QErr_val INT

OUT

0 -------- OK

1 -------- No response

2 -------- The station id error

3 -------- The return command error

4 -------- CRC error

当前正在循环的命令号

OUT

QRunSeq INT

所有其他参数的设定均在工作数据块中配置,无需另行配置。

2,针对CPU序列号的授权方式

主循环快FB 1071:MODMAS_STEP7_CP340_L

在用户程序中可以修改功能块的数字,但是不允许修改功能块的标签名。

1)你需要建立一个DB块,建立一个8个字节的STRING类型,在内容中需要将从工作室获得的针对这个CPU序列号发布的授权码。【授权码是一个

8位数字和字母混编的字符,无序!】

获得授权码需要提供现场使用的CPU的序列号,在CPU硬件的侧面。

每个序列号一次授权费用,不接受CPU损坏的申述。

2)功能块的实现。

参数类型性质描述

LADDR INT

第一块CP卡的起始地址

IN

IN

第二块CP卡的起始地址

LADDR2 INT

IN

冗余设置,1=冗余,0=非冗余

Redn_EN BOOL

特殊字符,须设定为’J’,注意要大写BLKTYPE CHAR

IN

特殊数字,测试版本为1,正式版本见授权书

IN

LIN INT

Switch_ERRNUM INT IN 冗余模式下,切换CP卡的累计错误次数设定,

最小设定为5

SysCycTime TIME

每条命令的等待时间设定,默认500ms,0ms

IN

=停止

命令启动位

STRT_SEQ BOOL

IN

IN

工作数据块号

WORK_DB INT

一个8位的关联CPU序列号的授权码

IN

CPULIN STRING

故障显示(保留位,目前无显示)

QERR BOOL

OUT

OUT

命令故障信息,可用

QErr_val INT

0 -------- OK

1 -------- No response

2 -------- The station id error

3 -------- The return command error

4 -------- CRC error

当前正在循环的命令号

OUT

QRunSeq INT

四, 实现方式

STEP7下的功能的实现比较复杂,需要通过配置数据块的方法配置参数。其配置

比较复杂,故需要使用一个配置程序来配置,并通过STL语言的方式自动生成所

需的DB块。

以下是软件的介绍:

软件界面

1,首先设置所有需要使用到的DB块的号

在我们开始项目前,需要确定我们的工作所需要的所有DB块的号码

工作数据块最主要的数据块,这个号码也将配置到程序中读命令数据块读数据命令的信息将被配置到这个DB块中

写命令数据块写数据命令的信息将被配置到这个DB块中

写命令数据块

写命令数据块存储所有写命令,其中图中所示红框部分为需要写到对方的数据,例第四条命令是写命令,则需要写的数据就存放在DATA_4中,将期望值写入其中,就会在下一循环写出去,此功能仅当数据发生变化时发生。如果是写多个,如命令五,DATA_5_1和DATA_5_2为数据存储位置,请注意,如果是写多个开关量时,需要自己调整高低位,因为各家的定义有出入,所以需要自己在程序中调整。

DATA_5_RSV,所有带RSV字样的数据位均是程序保留的,无需关注,但不要删除或移动位置。

写命令比较块这个块中的信息与写命令数据块中一致,是在确定

写数据的“仅改变时”动作时使用数据存储块这个块将存储所有的命令的返回值,如果是读命

令,包括一个字的状态和所有的数据,写命令仅有

状态返回

数据存储块例子

数据存储块中存储所有命令的返回状态,包括读取命令和写命令的最后状态,以一个word存储,如图中Command_X_STATUS所示,如果是写命令将只看到最后的返回状态,如图中Command_4_STATUS和Command_5_STATUS 这个块中还存储了所有的读取命令的返回信息,以Command_X_DATA_1, Command_X_DATA_2…..等存储,返回数据的个数由生成命令时的设定决定。

以上各数据块中,当命令数为0时不生成,当只有读命令时,写命令数据块和比较块将不生成,当仅有写命令时,读命令数据块将不生成。

2,根据实际需要配置命令参数,并将命令添加到列表中

根据需要在“命令参数块”中配置命令

每一条命令都可以单独配置超时时间,以ms为单位。

写命令需要配置写方式,默认为“仅改变时”。

命令参数配置完成后,点击“添加命令”按钮将命令添加到命令列表中

3,产生错误则需要复位删除当前配置的信息

当发生配置错误时,点击“复位”按钮可以复位所有的命令和数据区域,复位后需要从新配置所有的命令

4,自动生成STL程序

当所有的命令均生成后,点击“生成STL”按钮,所有的STL程序将生成在下方的文本框中。

5,保存STL程序到TXT文件中去

当需要将程序保存下来,可以点击“将STL保存到文本中”按钮,将STL 程序保存到指定的文本文件中,程序将不询问,直接建立或覆盖指定的文件。

这样可以通过TXT的方式在不同的机器间转移STL的程序代码。

6,直接将STL程序复制到剪贴板中

如果STEP7程序在同一个机器上运行,也可以直接复制,点击“复制到剪贴板”,将STL程序复制到系统的剪贴板上,可以直接在STL编辑器中粘贴使用。

7,STL的运行

在STEP7的sources目录下新建一个STL文件,可以命令为“CreateDB”,打开文件,将STL程序复制到编辑器中,并直接编译即可。

STEP7中STL源文件保存的目录:Sources

建立STL文件的方式

将STL程序复制到STL编辑器中后点击“编译”

8,编程

编程方式如下所示

建立两个开关量

程序主体

或者:

WORK_DB位置中将工作数据块的号码填写在这里,其他参数参见模块说明。

本模块的正确运行,需要使用到以下系统功能块:

FB2 P_RCV_RK

FB3

P_SND_RK

SFB52 RDREC

SFB53 WRREC

SFB58 WR_REC

SFB59 RD_REC

FC501 FET_DBN

SFB4 TON

等,以上各功能块,除系统块外,都可以修改功能块号,但是不能修改标签名。

在按CPU授权的版本中,还需要以下结构:

UDT10 UDT_ANY_Pointer

注意:请直接全部复制以上各功能块到您的程序中,而不要使用

系统本身的块,这点很重要。

五, 总结

本模块基本实现Modbus Master的所有功能,备有测试版本以供测试,如有需要,请联

系Dixinke@https://www.doczj.com/doc/7a3957987.html,,提供全面的技术支持。

附件:

地心客工作室同时也提供以下modbus驱动

CP341

CP340

CPU31xC-2PtP

Modbus主站无限制授权版本Modbus Master 免西门子硬件狗

Without dongle

支持

Support

自带串口支持

Support

Modbus主站CPU序列号授权版本Modbus Master via CPU 免西门子硬件狗

Without dongle

支持

Support

自带串口支持

Support

Modbus从站无限制授权版本Modbus Slave 免西门子硬件狗

Without dongle

支持

Support

自带串口支持

Support

Modbus从站CPU序列号授权版本Modbus Slave via CPU 免西门子硬件狗

Without dongle

支持

Support

自带串口支持

Support

相关主题
文本预览
相关文档 最新文档