菜鸟“
如:启动、停止、复位、转速给定、扭矩给定、恒速和恒扭 的切换等控制字!
已经安装好了GSD 文件,用的是 类型4,不知道 怎么编程去控制,报文 开始地址是 256~结束地址267
256 是 控制字 电机 启停,是不是 MW10(47F) MOVE PQW256 就可以了??电机就启动了?
258 是 转速给定么??
260 是扭矩给定么?
恒速和恒扭 在哪控制??
有具体的 LAD编程么?
由于现在车间还在接线 无法调试,所以先弄清楚是不是这么回事,到时候搞坏了就傻眼了!!!
求大神帮忙!!谢谢了
斑竹:
给你个方式参考下:
1.建立一个共享DB块,比如DB1. 在里面定义控制字,给定,状态字,转速等地址,比如控制字DB1.DBW2,转速给定DB1.DBW4,扭矩给定DB1.DBW6等等(共6个字12个字节);状态字DB1.DBW14,实际转速DB1.DBW16等等。
2.建立一个功能FC块,比如FC1,在里面写S7-300与变频器的通讯程序:
CALL SFC14 // (读功能)
LADDR:W#16#100 // 组态中的变频器PZD字起始地址(100为256的16进制)
RET_VAL: DB1.DBW20 // 返回值 (随便定义一个地址,但不要和前面的读写地址冲突,也可以用MW)
RECORD: P#DB1.DBW14 BYTE12 //从DB1.DBW14开始读变频器发送过来的值,共6个字12个字节。
CALL SFC15 // (写功能)
LADDR: W#16#100
RECORD: P#DB1.DBW2 BYTE12 // 从DB1.DBW2开始往变频器中写入值,共6个字12个字节。
RET_VAL: DB1.DBW22
至此,变频器与PLC的通讯程序完成。
3.开始写变频器的启停,给定控制程序:
变频器启停: 往DB1.DBW2中写入:47F(启动),47E(停止)。
如: A I0.0 // 变频器启动
AN I0.1 //变频器停止
A I0.2 // 给定是否在零位
L W#16#47F
T DB1.DBW2
变频器速度给定: 往 DB1.DBW4中写入速度给定值。
如: L PIW256 // 外部速度给定值
ITD // 整数转换成双整数
DTR // 双整数转换成实数
L 一个浮点数
/R
T DB1.DBW4
以上就基本上完成了PLC与变频器之间的通讯与控制,至于具体的控制逻辑,根据你的工艺要求来完成。
菜鸟:
以上就基本上完成了PLC与变频器之间的通讯与控制,至于具体的控制逻辑,根据你的工艺要求来完成。谢谢!!
我想问一下:如果是多台变频器的DP通讯,要不要考虑通讯的轮询问题,还是只要连续调用SFC14/SFC15即可。
斑竹:
连续调用即可,地址写对就行
菜鸟:
谢谢,因为我只是试验了一台MM4的DP通讯,不确定多台变频器的情况。
斑竹:
可以的,我用过M440的20多台,ABB的有40多台,都没有问题