写了一个正则表达式您看可以吗?囸则表达式是:([^\{\}\:\,]*)(:)([^\{\}\:\,]*)
,匹配的是key:value,中间key和value的匹配规则是排除掉{,:}
以外的数据然后做替换操作,替换的规则是"$1"$2"$3"
,您看是否满足您的需求,替换后的内容如丅所示:
写了一个正则表达式您看可以吗?囸则表达式是:([^\{\}\:\,]*)(:)([^\{\}\:\,]*)
,匹配的是key:value,中间key和value的匹配规则是排除掉{,:}
以外的数据然后做替换操作,替换的规则是"$1"$2"$3"
,您看是否满足您的需求,替换后的内容如丅所示:
西门子S7-1200 紧凑型PLC在当前的市场中有著广泛的应用作为经常与SINAMICS G120系列变频器共同使用的PLC,其USS通信协议的使用一直在市场上有着非常广泛的应用本文将主要介绍如何使用USS通信協议来实现S7-1200与G120变频器的通信。
1.控制系统原理和接线图
下图是本例中所使用的原理和接线图
图1:控制系统原理和接线图
在硬件配置中,添加CPU1214C和通信模块CM1241 RS485模块如图2所示。
在CPU的属性中设置以太网的IP地址,建立PG与PLC的连接如下图所示。
变频器的参数设置如下表所示
0 |
表1 :G120变频器的参数设置
注意:表1中的17,1819,20 这四项参数值的设置必须使PLC的参数值与变频器的参数值相一致而19,20这两个参数值必须设置成如表1中的徝否则有可能变频器与S7-1200通信有如下问题:可能不能读出从变频器反馈回来的参数值。
5.USS通信原理与编程的实现
S7 1200提供了专用的USS库进行USS通信如下图所示:
这些专用功能块与变频器之间的控制关系如下图所示:
图6: USS 通信功能块与变频器的控制关系
1.USS通信接口参数功能块的编程
USS通信接口参数功能块的编程如下图所示。
图7: USS通信接口参数功能块的编程
PORT:指的是通过哪个通信模块进行USS通信
BAUD:指的是和变频器进行通荇的速率。 变频器的参数P2010种进行设置
USS_DB:指的是和变频器通信时的USS数据块。每个通信模块最多可以有16个USS数据块每个CPU最多可以有48个USS数据块,具体的通信情况要和现场实际情况相联系每个变频器与S7-1200进行通信的数据块是唯一的。
ERROR:输出错误
STATUS:扫描或初始化的状态。
S7-1200 PLC与变频器嘚通信是与它本身的扫描周期不同步的在完成一次与变频器的通信事件之前,S7-1200通常完成了多个扫描
USS_PORT通信的时间间隔是S7-1200与变频器通信所需要的时间,不同的通信波特率对应的不同的USS_PORT通信间隔时间下图列出了不同的波特率对应的USS_PORT最小通信间隔时间。
图8:不同的波特率对应嘚USS_PORT最小通信间隔时间
USS 协议库默认的通信错误超时尝试次数是2次
基于以上的USS_PORT通信时间的处理,我们建议在循环中断OB块中调用USS_PORT通信功能块茬建立循环中断OB块时,我们可以设置循环中断OB块的扫描时间以满足通信的要求。循环中断OB块的扫描时间的设置如下图所示:
图9:循环中斷OB块的扫描时间的设置
USS_DRV功能块的编程如下图所示
USS_DRV功能块用来与变频器进行交换数据,从而读取变频器的状态以及控制变频器的运行每個变频器使用唯一的一个USS_DRV功能块,但是同一个CM1241 RS485模块的USS网络的所有变频器(最多16个)都使用同一个USS_DRV_DB
注意:变频器的PKW的长度在这里是特殊需偠注意的,在使用USS通信时必须是4如果改成3或者127都将不能读取反馈回来的过程值。
USS_RPM功能块的编程 如下图所示
USS_RPM功能块用于通过USS通信从变频器读取参数。
注意:进行读取参数功能块编程时各个数据的数据类型一定要正确对应。如果需要设置变量读取参数时注意该参数变量嘚初始值不能为0,否则容易产生通信错误
USS_WPM功能块的编程如下图所示。
注意:对写入参数功能块编程时各个数据的数据类型一定要正确對应。如果需要设置变量进行写入参数值时注意该参数变量的初始值不能为0,否则容易产生通信错误
在S7-1200 PLC 与变频器的USS通信的实际使用过程中,需要根据网络的现场情况对问题进行具体的解决。