S7-300C 与MM440 串行口通讯

1.示例系统的体系结构
图 0
本例中选用 s7-300 cpu 314c-ptp 作为 rs485 uss 串行通讯主站,连接一个 mm440 变频器。连接多个 mm440 时与之相同。
2.软件版本描述需要软件step 7 v5.2 以上ptp paramdrive es simatic for function block library drvusss7(含手册)
需要硬件1:s7-300 cpu 314c-2ptp2:mm440
3。串口通讯连接图s7-300ptp mm440pin 4 ……………………… … . pin 30pin 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 表示参数下标为 18 表示参数号码相差 2000plc pkw 输入=100a,8001,0000,0006 返回 1 表示单字长,值为 0006(hex)
传送命令参考 mm440 手册。
3,pzd 参数为异步读写。plc 输出,第一个字为控制字,第二个字为主设定值。(缺省)plc 输入,第一个字为状态字,第二个字为运行反馈值。(缺省)