西门子S7-300怎么与MM440变频器串行口通讯

1.示例系统的体系结构
本例中选用 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 串口通讯参数
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 输入,个字为状态字,第二个字为运行反馈值。(缺省)