本文介绍一种PLC使用Profinet通信控制变频器等应用时,比较经典的控制用法。依托TIA Protal V18环境实现S7-1200与G120充分利用999自由报文和Bico技术的灵活性,简化系统架构,减少图纸设计工作量,提高PLC程序的柔性。
本项目由一台S7-1200控制14台G120变频器,变频器分布在现场设备就近各电气室内。
变频器输出侧配有主回路接触器,并要求对接触器状态信号进行监控;变频电机风机的启/停,故障信号也要进行监控。传统做法这些监控信号需要接入分布I/O或直接接入PLC。由原理图可见,实际上我们将这些需要监控的信号全部接入变频器CU控制单元的I/O端子,并经由Profinet网络通过999报文实现控制和监视功能,下面就来看详细方法。
由于使用999自由报文,报文长度可以自己定义,考虑数据量和未来扩展,我们采用了6个读和6个写的PZD长度,根据报文形式,建立全局变量表,如下图:
PLC读取实际数据来自G120变频器: 实际数据中转速实际值、电流实际值、转矩实际值的换算部分略过,重点介绍一下读写数据程序中的GATHER指令和SCATTER指令,前面说到过TIA Protal变量表数据索引方式和原来的STEP7 Manager不同,并不能直接使用全局变量表中一个整字(INT或Word数据类型)中的某一位或几位,那么我们要使用状态字、接触器控制位和I/O状态反馈中的某一位或几位就需要用GATHER指令和SCATTER指令对数据进行组合和拆分,下面是这两条指令的功能说明:(Tips 用SCATTER指令拆分的INT或Word数据类型字节序已经自动转换。) 实际PLC程序中,对数据进行按位组合发送: 对需要按位使用的数据进行按位拆分: 这样得到的数据可以利用在程序中,例如进行HMI显示元件赋值和故障字报警字状态的组织: 篇幅有点长,但相信耐心读完一定有所收获。时间仓促,语言组织有些不足,欢迎评论区批评指正和讨论。欢迎点亮❤️,点赞,转发支持。