其实西门子S7-200 SMART推出V2.6版本已经有一段时间了,我一直没有写相关的文章,主要原因是在等待公布V2.6固件下载的链接,这样就可以把相关的信息一起推送给大家。现在看来这个版本的固件可能不会公布了。由于物料号的升级,不支持从V2.5直接升级到V2.6了。下面我们来详细介绍下V2.6的相关信息。
简单来说,V2.6固件版本的标准型CPU在之前的基础上,增加了Web服务器功能。当然,与之相关的还有证书的管理。
有了Web服务器功能,用户可以在浏览器中输入CPU的IP地址,这样就可以访问预先设置的变量及CPU的相关信息。
西门子S7-1200/1500系列PLC都支持Web服务器功能,现在S7-200 SMART也支持该功能,进一步提升。
不过,你手上的老CPU不能通过固件升级的方式升级到V2.6版本。西门子对V2.6标准型CPU的订货号进行了升级,从之前的尾号0AA0升级到0AA1。比如,CPU ST40 DC/DC/DC之前的订货号是6ES7288-1ST40-0AA0,现在V2.6版本的CPU ST40 DC/DC/DC订货号为6ES7288-1ST40-0AA1。换句话说,要使用固件V2.6版本的Web服务器功能,需要重新购买CPU硬件。
V2.6的硬件也做了一些升级,比如SR系列CPU的电源除了支持之前的220V交流供电,还开始支持使用110V直流供电;新版本的ST/SR CPU工作温度范围进一步提升,可以在零下20℃工作。
随着更新一起发布的还有编程开发软件STEP 7-Micro/WIN SMART V2.6,新增了Web服务器向导和证书管理功能,如下图所示:
V26.png
现在我们来回顾下S7-200 SMART标准型CPU的版本功能:
V2.4——新增PROFINET I/O控制器功能,开始支持PROFINET通信;
V2.5——新增PROFINET 智能设备功能,可作为PROFINET智能设备使用;
这两个版本的功能都可以通过固件更新,将低版本的CPU升级到相应版本;
V2.6——新增Web服务器功能,可通过浏览器访问CPU;该版本不能通过固件直接升级,需要更换硬件;
我的书《西门子S7-200 SMART PLC应用技术》介绍了PROFINET I/O控制器和智能设备的功能,及怎样进行固件升级。如果你感兴趣的话,可以看看下面的链接:
该方法同样适用于S7-200 SMART编程软件STEP7 Micro/WIN SMART。若你发现该软件打开后有很多乱码,请按照上述方法更改计算机的区域设置。
问题3:博途环境下使用WinCC下载屏幕程序后,发现屏幕上的字体变得非常小。
原因:这种情况多发生在有高清屏(高分辨率)的电脑,可能是激活了应用程序的高DPI缩放行为。
解决方法:
右键单击博途“属性”→“兼容性”→“更改高DPI设置”,取消“替代高DPI缩放行为”,如下图所示:
问题3解决方法.png
取消后程序界面可能会变得模糊,等下载完成后,可以再更改回来。如果该方法不奏效,可以试着更改下屏幕的分辨率看看。
另外要注意:在更改DPI缩放设置后,要将WinCC程序完全编译,
之前我曾写过一篇文章介绍西门子S7-200 SMART的模拟量指令库《S7-200 SMART怎样添加和使用模拟量指令库?》。这篇文章,结合我近期测试国产模拟量输出模块的实际经验,跟大家分享下该指令库使用过程中要注意的几个问题。本文主要包括如下几个主题:
模拟量指令S_RTR和S_RTI的区别
1、模拟量指令S_RTR和S_RTI的区别
指令S_RTR和S_RTI通常都是用来处理模拟量输出。名称中的"S"是"Scale"的缩写,表示"量程";"R"是"Real"的缩写,表示"实数";"T"是"To"的缩写,表示转换;"I"是"Integer"的缩写,表示"整数"。因此,从名称可以看出,S_RTR指令是把实数转换成实数,S_RTI指令是把实数转换成整数,通常情况下我使用的是S_RTI指令。
比如西门子 ET200 SP的模拟量输出模块AQ 2xI ST,它能输出4~20mA的电压信号,其对应的输出整数的范围为0~27648。对于这样的模块信号转换,我们只需要输入工程值和转换值即可。举个例子,某工程值速度信号的范围为0.0~100.0 cm/min,其实际速度存放在VD100(actualSpeed)中,要求将实际速度转换成相应的电流信号进行输出,可以使用下面的代码:
模拟量举例.PNG
有些模拟量输出模块(比如我测试的这个国产模块),它的输出信号也是4~20mA,但是其对应的整数范围是0~65535。这种情况下,如果我们还是用这个公式,将"OSH"改成65535,就会出问题,如下图:
模拟量举例2.png
"S_RTI"指令中"OSH"和"OSL"都是"16位有符号整数",其取值范围为-32768~+32767。65535出了其取值范围,因此会产生溢出错误,我们进入其内部代码可以看的更清楚,如下图所示:
整数溢出.png
这种情况下,我们应该使用"S_RTR"指令,它的量程范围均为实数,如下图所示:
模拟量举例3.PNG
不过"S_RTR"指令转换的输出值为实数,而我们需要写入的模拟量输出地址为无符号整数类型,比如QW130,怎么把实数转换成无符号整数呢?
2、怎样将实数转换为无符号整数
首先,我们可以使用Round指令将实数转换成近似的双整数。接下来就是问题的关键:怎样把双整数转换成无符号整数?
如果我们直接使用系统提供的指令"DI_I"会出现错误,因为这个双整数出了有符号整数的范围。我找了半天,没有发现能直接进行转换的指令。于是自己写了一个函数(子程序)来实现这个功能。
打开STEP 7 Micro-WIN/SMART,在程序块中添加子程序,名称为Conv_DI2W,在其变量表中声明变量如下图所示:
在代码区编写代码如下:
在主程序中调用子程序Conv_DI2W,为其参数赋值即可,如下图所示:
模拟量输出控制.PNG
好了,关于S7-200 SMART模拟量输出指令使用时注意问题就先介绍到这里。如果你想学S7-200 SMART PLC ,可以看看我的书《西门子S7-200 SMART PLC应用技术》:
西门子S7-200 SMART PLC应用技术》介绍了PROFINET I/O控制器和智能设备的功能,及怎样进行固件升级。如果你感兴趣的话,可以看看下面的链接:
该方法同样适用于S7-200 SMART编程软件STEP7 Micro/WIN SMART。若你发现该软件打开后有很多乱码,请按照上述方法更改计算机的区域设置。
问题3:博途环境下使用WinCC下载屏幕程序后,发现屏幕上的字体变得非常小。
原因:这种情况多发生在有高清屏(高分辨率)的电脑,可能是激活了应用程序的高DPI缩放行为。
解决方法:
右键单击博途“属性”→“兼容性”→“更改高DPI设置”,取消“替代高DPI缩放行为”,如下图所示:
问题3解决方法.png
取消后程序界面可能会变得模糊,等下载完成后,可以再更改回来。如果该方法不奏效,可以试着更改下屏幕的分辨率看看。
另外要注意:在更改DPI缩放设置后,要将WinCC程序完全编译,
之前我曾写过一篇文章介绍西门子S7-200 SMART的模拟量指令库《S7-200 SMART怎样添加和使用模拟量指令库?》。这篇文章,结合我近期测试国产模拟量输出模块的实际经验,跟大家分享下该指令库使用过程中要注意的几个问题。本文主要包括如下几个主题:
模拟量指令S_RTR和S_RTI的区别
怎样将实数转换为无符号整数?
cover.png
1、模拟量指令S_RTR和S_RTI的区别
指令S_RTR和S_RTI通常都是用来处理模拟量输出。名称中的"S"是"Scale"的缩写,表示"量程";"R"是"Real"的缩写,表示"实数";"T"是"To"的缩写,表示转换;"I"是"Integer"的缩写,表示"整数"。因此,从名称可以看出,S_RTR指令是把实数转换成实数,S_RTI指令是把实数转换成整数,通常情况下我使用的是S_RTI指令。
比如西门子 ET200 SP的模拟量输出模块AQ 2xI ST,它能输出4~20mA的电压信号,其对应的输出整数的范围为0~27648。对于这样的模块信号转换,我们只需要输入工程值和转换值即可。举个例子,某工程值速度信号的范围为0.0~100.0 cm/min,其实际速度存放在VD100(actualSpeed)中,要求将实际速度转换成相应的电流信号进行输出,可以使用下面的代码:
模拟量举例.PNG
有些模拟量输出模块(比如我测试的这个国产模块),它的输出信号也是4~20mA,但是其对应的整数范围是0~65535。这种情况下,如果我们还是用这个公式,将"OSH"改成65535,就会出问题,如下图:
模拟量举例2.png
"S_RTI"指令中"OSH"和"OSL"都是"16位有符号整数",其取值范围为-32768~+32767。65535出了其取值范围,因此会产生溢出错误,我们进入其内部代码可以看的更清楚,如下图所示:
整数溢出.png
这种情况下,我们应该使用"S_RTR"指令,它的量程范围均为实数,如下图所示:
模拟量举例3.PNG
不过"S_RTR"指令转换的输出值为实数,而我们需要写入的模拟量输出地址为无符号整数类型,比如QW130,怎么把实数转换成无符号整数呢?