6SL3060-4AC30-0AA0连接电缆
6SL3060-4AC30-0AA0连接电缆
simatic net opc服务器常作为simatic与第三方上位机通讯的中介。在tdc系统中调用相应的功能块,也可以实现simatic tdc 与 opc的通讯,为上位机提供更灵活的访问tdc的方式。本文简要的介绍了建立 tdc 与opc ethernet通讯的方法与步骤。
1. 建立tdc与opc的s7连接
1.1 tdc的软硬件配置
建立基于以太网的s7通讯,需要为tdc系统配置以太网通讯模块cp51m1(6dd1661-0ae1),并调用tcp/ip初始化功能块。
图1 组态tdc并配置cp51m1
cp51m1的ip地址通常与pc站网卡处于同一网段,如:
cp51m1:192.168.0.220;pc站网卡:192.168.0.24。
图2 tcp/ip初始化
“@tcp/ip”用来建立tcp/ip通讯耦合,并且必须在大于等于32ms并小于等于256ms的循环周期中调用。
建立s7通讯之前必须调用“s7con”块,初始化s7应用层服务。
图3 s7服务初始化
同样“s7con”块也必须在大于等于32ms并小于等于256ms的循环周期中调用。
其中主要参数的含义为:
“us”:格式为 *多6个字符的通道名称. cpu槽号,如“yyu.01”。
“tnr”:s7 tsap号,默认为3。
“nos”:通讯设备的个数(与tdc通讯的opc服务器的个数)。
“tld”:通讯报文格式,默认为0,*大通讯字节240。
tdc为opc服务器提供可供访问的db块,调用“s7db_p”建立db1,并为db1赋值
图4 s7服务初始化
其中“s7db_p”主要参数的含义为:
“len”:db块长度。
“nbf”:db块缓冲区个数,一般设为1。
“bsl”:选择缓冲区,一般设为1。
“sav”:db是否存储在sav区域。
“s7db_p”功能块只是开辟了通讯的数据存储区,如果要对存储区的数据进行读写操作,就需要调用读写功能块。本文中所示的例子程序使用“read int”读取整数数据,“write in”写入整数数据。
其中“read int”及“write in”主要参数的含义为:
“off1”和“off2”:读写数据在数据存储区内的偏移量。如两参数之和为零,存取存储区内的第一个整数;两参数之和为2,存取存储区内的的第二个整数,以此类推。
“swp”:用来设定是否交换高低字节,此处设为1。
读取或写入其它类型数据的方法与本例相同,只是调用的读写功能块稍有不同,本文不再详述。
1.2 pc站及opc的组态
组态pc站,并建立与tdc的s7连接。
图5 组态pc站
图6 建立s7连接
图中的“partner”的rack/slot指tdc的机架号与槽号,connection resource为连接资源号,“local”为10,“partner”为3。具体含义见下表
表1 s7连接资源
然后就可以通过opc scout来测试opc服务器是否能正常通讯。
图7 测试s7连接
由于opc scout不能直接浏览到tdc的db1,需要手动输入存取地址。如果s7连接名称是“s7_connection_1”,存取地址“s7:[ s7_connection_1]db1.int0代表db块中的第1个16位整数。
2. 建立tdc与opc的tcp连接
2.1 在tdc中调用发送和接收功能块
图8 发送功能块
其中“ctv_p”主要参数的含义为:
“at”:通道参数,如“ct.t-02001”,其中“ct”为用户定义的通道名称,“2001”为tcp通讯的本地端口号。
“mod”:通讯模式,对于tcp通讯,一般设为“h”。
“en”:发送势能,设为1。
“nby”:发送的字节长度。
图9 接收功能块
“crv_p”功能块比“ctv_p”功能块多一个参数,设为1000ms,其它参数含义相同。
2.2 为pc站组态tcp连接
图10 建立tcp连接并设置地址、端口
图11 设置发送接收字节
“send buffer size”等于“crv_p”的“nby”参数值。“receive buffer size”等于“ctv_p”的“nby”参数值。
通过opc测试建立的tcp连接。
图12 测试tcp连接
用运算放大器模拟被控对象一般需要做印刷电路板,还是比较麻烦。有没有更简单的方法呢?
模拟被控对象,关键是用来模拟的工具的传递函数要和实际的被控对象相同。被控对象一般是串联的惯性环节和积分环节的组合。除了用运算放大器来模拟被控对象的传递函数,也可以用的程序来模拟。为此我编写了用来模拟被控对象的s7-200的子程序,它也可以用于s7-200 smart。使用模拟的被控对象的pid闭环示意图如下图所示,虚线右边是被控对象,disv是系统的扰动输入值。虚线左边是plc的pid控制程序。
被控对象的数学模型为3个串联的惯性环节,其增益为gain,3个惯性环节的时间常数分别为tim1~tim3。其传递函数为
分母中的“s”为自动控制理论中拉普拉斯变换的拉普拉斯算子。将某一时间常数设为0,可以减少惯性环节的个数。图中被控对象的输入值inv是pid控制器的输出值。被控对象的输出值outv作为pid控制器的过程变量(反馈值)pv。
下图是模拟被控对象的子程序,下图是模拟被控对象的子程序,用与pid的采样周期相同的定时中断时间间隔来调用这个子程序。用与pid的采样周期相同的定时中断时间间隔来调用这个子程序。
下图是用来监视pid回路运行情况的step 7-micro/win的pid调节控制面板,可以用它进行pid参数自整定或手动调节pid参数的实验。标有pv的是过程变量(即被控量)的阶跃响应曲线。
将上图中的积分时间由0.03min(分钟)增大到0.12min,下图的超调量有明显的减小。通过修改pid的参数,观察被控量阶跃响应曲线给出的超调量和调节时间等特征量的变化情况,可以形象直观、快速地学习和掌握pid参数的整定方法。