1.示例系统的体系结构
图 0
本例中选用 S7-300 CPU 314C-PtP 作为 RS485 USS 串行通讯主站,连接一个 MM440 变频器。连接多个 MM440 时与之相同。
2.软件版本描述
需要软件
STEP 7 V5.2 以上
PtP Param
Drive ES SIMATIC for Function Block Library DRVUSSS7(含手册)
需要硬件
1:S7-300 CPU 314C-2PtP
2:MM440
3。串口通讯连接图
S7-300PtP MM440
PIN 4 ……………………… … . PIN 30
PIN 11…………………… … … PIN 29
4.组态
4.1 组态MM440 USS 通讯参数
P003=3 访问级
P700=5 通讯源,从USS 通讯接口
P1000=5 频率设定点数据源,从USS 通讯接口
P2010=6 波特率为9.6K (7 为19.2K, 8 为38.4K)
P2011=1 USS 站号
P2012=4 USS PZD 长度
P2013=4 USS PKW 长度
P2014=1000 监控时间
4.2 组态S7-300PtP 串口通讯参数
图 1
5 plc 编程
5.1 拷贝 DRVUSSS7 库程序到应用程序中
图 2
在本例中,站号为 1,PZD 和 PKW 为 4,在 OB100 初始化程序中修改相应程序:
图 3
读写多个站时必须使 PKW 和 PZD 数量相同且站号连续。DB50,100 任选,DB10 用于串口通讯块。这些数据块在启动 CPU 时自动生成,不用在程序中新建。
5.2 注意在 FC30 中块调用的顺序(请参考 Drive ES SIMATIC DRVUSSS7 手册)
FC21(USS 发送)– SFB60(串口发送)- FC22(USS 接收)- SFB61 (串口接收)
DB100 中的请求数据通过 DB50 来协调,指向 DB10 中,用 SFB60 发送出去;SFB61 用DB10 作为接收区,通过 DB50 来协调,最后按站排序放在 DB100 中。所以用户关心的数据都放在 DB100 中。
5.3 DB100 中数据存储的规则(请参考 Drive ES SIMATIC DRVUSSS7 手册)
每一个站占用的数据为 2X(PKW+PZD)+PKW+6 字
在本例中,PKW 和PZD 为4,所占用数据的字为26 个字
图 4
图4 中 PZD 为16,PKW 为4。
在本例中PKW 发送区为DB100.DBW22~28,PZD 发送区为DB100.DBW30~36,PKW 接收区为DB100.DBW38~44,PZD 接收区为DB100.DBW46~52 (n 为2) 。后续站数据结构与之相同,每个站占用26 个字。PKW 数据发送时,要置位通讯控制KSTW 第一位一次,在本例中为 DB100.DBX3.0,然后被程序复位。
6 数据传送规则
对 PKW 区数据的访问是同步通讯,即发一条信息,得到返回值后才能发第二条信息。PKW 一般为 4 个字。
1,读写 0002~1999 的参数。
如:读 P0700, 700(DEC)=2BC(HEX)
PLC PKW 输出=12BC,0000,0000,0000 1 表示读请求
PLC PKW 输入=12BC,0000,0000,0006 返回 1 表示单字长,值为 0006(HEX)
如:读 P1082, 1082(DEC)=43A(HEX)
PLC PKW 输出=143A,0000,0000,0000 1 表示读请求
PLC PKW 输入=243A,0000,4248,0000 返回 2 表示双字长,值为 42480000(HEX)=50.0(REAL)
如:写 P1082, 1082(DEC)=43A(HEX)
PLC PKW 输出=343A,0000,41F0,0000 3 表示写双字请求,值为
41F00000(HEX)=30.0(REAL)
PLC PKW 输入=243A,0000,41F0,0000 返回 2 表示双字长,确认修改完毕。
2,读写 2000~3999 的参数。
如:读 P2010, 10(DEC)=A(HEX) (10=2010-2000)
PLC PKW 输出=100A,8001,0000,0000 1 表示读请求, 01 表示参数下标为 1
8 表示参数号码相差 2000
PLC PKW 输入=100A,8001,0000,0006 返回 1 表示单字长,值为 0006(HEX)
传送命令参考 MM440 手册。
3,PZD 参数为异步读写。
PLC 输出,第一个字为控制字,第二个字为主设定值。(缺省)
PLC 输入,第一个字为状态字,第二个字为运行反馈值。(缺省)