西门子S7-1200模块代理商
西门子plc广泛应用于工业控制的各种应用场合,目前高端主推S7-1500系列PLC,采用博途软件编程,从V11、V12……到现在的V15和即将推出的V16,不断更新。而作为经典的S7-300系列PLC在当前在用的设备中仍有广泛的存在。随着设备使用年限的增加,故障率也会增多,需要对设备进行维护。而有时遇到十几年前的设备,项目负责人已经离职或者退休,项目资料又没有妥善保存。这时需要对设备项目进行上载编辑。
以S7 315-2DP为例。该PLC没有以太网口,有一个MPI口和一个DP口。
运行Step7软件,本文使用的是V5.6版本。
新建一个空项目,命名项目名称project1。
此处连接工具使用的是西门子的CP5711通讯处理器,用来连接调试电脑和Profibus或者MPI。
线缆一端连接PLC的DP接口,另一端连接电脑USB接口,驱动会自动安装。连接好后,点击菜单中的"Options",在下拉菜单中选择"SetPG/PC Interface"
在列表中选择连接5711卡。
点击菜单中的"PLC",在下拉菜单中选择"Upload Station to PG"
出现DP节点选择对话框,点击"Update"刷新后可以看到总线上的各个站点,此处总线站点只有PLC。从下面可连接站点列表中选择要上传的PLC,点击左下角的"OK"按键。
开始上传PLC中包括硬件组态和功能块在内的各项信息。
上传完毕后项目便整个上载到本地电脑中了。
需要注意的是S7-300系列PLC程序下载不支持注释,也就是说上载上来的程序各个变量均没有注释,S7-1500系列PLC可以下载注释,不能下载变量分组。上载上来的功能块离线状态下不能用"goto"命令进行跳转,在线状态可以!
后说一句,如果处于知识产权方面考虑,可以事先给项目加密,防止第三方未经允许上载程序
在plc编程中,只要涉及到数据采集和输出,都会遇到模拟量的线性变换。在西门子300plc编程中,系统自带的两个线性变换功能块FC105和FC106是常用的两个数据转换模块。在博图中,模拟量的线性转换跟300PLC有一定的差异,本文详细介绍1200,1500中模拟量的线性转换问题。
1. 线性变换原理
线性变换原理公式
线性变换的原理很简单,比如说,在工程测量中,常会遇到4-20mA的传感器,如压力传感器或位移传感器等,要转换为0-50MPa的物理量。用高中学过的直线方程两点式就可以了。已知两点(4,20)和(20,50),求(x,y)。
2.线性变换用到的指令模块
(1).标准化(NORM_X)指令:
可以使用“标准化”指令,通过将输入 VALUE 中变量的值映射到线性标尺对其进行标准化。可以使用参数 MIN 和 MAX定义(应用于该标尺的)值范围的限值。输出 OUT中的结果经过计算并存储为浮点数,这取决于要标准化的值在该值范围中的位置。如果要标准化的值等于输入 MIN 中的值,则输出 OUT将返回值“0.0”。如果要标准化的值等于输入 MAX 的值,则输出 OUT 需返回值“1.0”。
OUT=(VALUE-MIN)/(MAX-MIN)
上面是PLC帮助文档的官方解释:很拗口,理解不了不用去管他。下面直接看应用就会好。
标准化(NORM_X)指令
标准化(NORM_X)指令映射关系
标准化(NORM_X)指令参数
注意这个数据类型就可以了。
(2)SCALE_X:缩放
“缩放”指令,通过将输入 VALUE 的值映射到指定的值范围来对其进行缩放。 当执行“缩放”指令时,输入 VALUE的浮点值会缩放到由参数 MIN 和 MAX 定义的值范围。 缩放结果为整数,存储在 OUT 输出中。
同样的,不用去刻意理解这个意思。后面看举例应用就可以了。
SCALE_X:缩放指令
缩放指令映射
缩放指令参数
同样的,注意这个数据类型就可以了。
3.线性变换指令块的应用举例
线性变换的原理很简单,比如说,在工程测量中,常会遇到4-20mA的传感器,如压力传感器或位移传感器等,要转换为0-50MPa的物理量。用高中学过的直线方程两点式就可以了。已知两点(4,20)和(20,50),求(x,y)。
先熟悉模拟量采集的对应关系,如图,4-20mA对应0-27648
PLC电压测量值对应关系
PLC电流测量值对应关系
4-20mA转换为0-50MPa程序
如图所示:经过两步就可以把,采集到的模拟量4-20mA,转换为0-50MPa。
如果是-10V-10V对应0-50MPa,只需要把min赋值为-27648(查表)即可。
4.理解
上述两步,其实就是把线性关系
两点式分两步完成了。
理解起来可能有点拗口,应用起来知道怎么处理就行。
步:看是单极性,还是双极性,单极性对应0-27648,双极性(-10V到10V)对应-27648—27648,
第二步:调用模块。
第三步:分别给两个模块的MIN,MAX,VALUW赋值即可。注意其数据类型,一般的%IW0为INT,转换后位REAL。
下一篇小文准备写模拟量的输出线性变换。这个需要两个模块来转换得到物理量,再下一篇小文介绍两点式线性变换程序的编写,用一个模块就可以搞定