登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:如何转换S7-1200 CPU模拟量

点击:6201 回复:20

楼主
附上程序,已经归档,需要在软件恢复即可,版本是V15 大家尽量下载适用V15版本
附件:模拟量量程转换_V15.rar
[本地下载]
附件:模拟量量程转换_V15.rar
[本地下载]
步骤1:解压缩“analog_convert.rar”(201111817528726.rar ( 307 KB ) )文件到一个文件夹。
步骤2:打开STEP7 Basic中的“Libraries Tab”, 点击“Open global library”图标
附件 1.jpg
图1
步骤3:选择“analog_convert”库所解压的文件夹。
附件 2.jpg
图2
步骤4:在添加程序库后,FC105(SCALE),FC106(UNSCALE)即可以被添加到用户程序中。
附件 33.jpg
图3
参数解释:
1. 用户可以使用本例子所提供的FC105将模拟量输入模板的整数数值转换为工程量数值。对于FC105的输入/输出参数解释如下:
参数 类型 数据类型 存储区 描述
EN 输入 BOOL I, Q, M, D, L 信号状态 “1”,激活该块。
ENO 输出 BOOL I, Q, M, D, L? 块执行无错误时,输出信号状态 “1”。?
IN 输入 INT I, Q, M, D, L,常数? 需转化的整数输入值。
HI_LIM 输入 REAL I, Q, M, D, L,常数 物理单位的高限值。
LO_LIM 输入 REAL I, Q, M, D, L,常数 物理单位的低限值。
BIPOLAR 输入 BOOL I, Q, M, D, L,常数 信号状态“1” 表示双极性输入值。
信号状态“0” 表示单极性输入值。
OUT 输出 REAL I, Q, M, D, L, 转化后的工程量结果。
RET_VAL 输出 WORD Q, M, D, L, 当操作没有错误,输出值 W#16#0000。
附件 5.jpg
表1:FC105 参数
参数转化关系:
OUT = [((FLOAT (IN) – K1)/ (K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM
注意:如果用户使用的输入/输出类型为双极性(如±10V,±5V等),BIPOLAR参数应当给定为TRUE,此时K1=-27648,K2=27648,否则K1=0,K2=27648。
例如:假设模拟量模块所接传感器为0-20mA 类型,其测量对象为温度,当温度为0℃时电流为0 mA,当温度为100℃时电流为20 mA。此时模拟量输入模块得到的对应数值0 mA对应为0,20 mA对应为27648。如果当前电流值为10 mA,则模拟量模块得到的输入值为13824,如果用户希望在CPU中得到一个最终的实际温度值,则可以调用FC105,将模拟量输入模块的数值赋给参数IN,工程量上限值给定为100.0,下限值给定为0.0,即可在输出参数OUT得到实际温度值50℃。
附件 6.jpg
图4:FC105 使用例子
2. 用户可以使用本例子所提供的FC106将工程量值转换为模拟量输出模板所需要的数值。
对于FC106的输入/输出参数解释如下:
参数 类型 数据类型 存储区 描述
EN 输入 BOOL I, Q, M, D, L 信号状态 “1”,激活该块。
ENO 输出 BOOL I, Q, M, D, L? 块执行无错误时,输出信号状态 “1”。?
IN 输入 INT I, Q, M, D, L,常数? 工程量给定值。
HI_LIM 输入 REAL I, Q, M, D, L,常数 物理单位的高限值。
LO_LIM 输入 REAL I, Q, M, D, L,常数 物理单位的低限值。
BIPOLAR 输入 BOOL I, Q, M, D, L,常数 信号状态“1” 表示双极性输入值。
信号状态“0” 表示单极性输入值。
OUT 输出 REAL I, Q, M, D, L, 转化后的整数结果。
RET_VAL 输出 WORD Q, M, D, L, 当操作没有错误,输出值 W#16#0000。
附件 8.jpg
表2:FC106 参数
参数转化关系:
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1
注意:如果用户使用的输入/输出类型为双极性(如±10V等),BIPOLAR参数应当给定为TRUE,此时K1=-27648,K2=27648,否则K1=0,K2=27648。
例如:假设模拟量输出模块输出设置为0-20mA 类型,其所连接的执行器为调节阀。当电流为0 mA时阀门开度为0%,当电流为20 mA时阀门开度为100%。如果用户希望阀门开度为50%,则可以调用FC106,将开度给定值赋给参数IN,工程量上限值给定为100.0,下限值给定为0.0,将模拟量输出模块的地址赋给参数OUT,此时OUT数值为13824,即可使模拟量输出模块输出电流值为10 mA,即阀门开度为50%。
附件 77.jpg
我有个温度变送器是4-20MA的电流信号,经过隔离信号转0-10V?请问一下用标准化在公式应当填写那些参数,变送器温度量程0-100度,PLC自带两路0-10V模拟量输入信号,求解。我已经用西门子论坛那个案例项目程序下载了。我修改了MAX?MIN?就是不知道温度是不是一致?
附件 333.jpg
程序下载后,录一个视频(已剪辑过,上传抖音)
附件 IMG_20190210_182045.jpg
附件 IMG_20190210_182053.jpg
附件 IMG_20190210_182102.jpg
附件 IMG_20190210_182106.jpg
附件 IMG_20190210_182106_1.jpg
附件 IMG_20190210_182115.jpg
上面的温度变送器是电流信号我通过隔离器转的电压信号 用本体的电压信号模拟量输入,实现温度转换及标准化公式,主要就是验证我的做的程序符号设计内容,是否可以准确
最后修改:2019/2/14 9:59:14
19-02-10 12:02
自己做个乘除运算也是比较简单的
19-02-10 12:54
四则运算是吗……很好的建议,不过现成公式套现也可以用的,哈哈儿
19-02-10 13:07
不错的分享,建议置精
19-02-10 13:42
FC105不是现成的吗?
另外,我经常不用FC105,因为0以下截断,看不到负数,不知现在情况有改善没有?
19-02-10 17:36

引用 pqsh 在 2019/2/10 17:36:34 发言【内容省略】

Sir,FC105是300/400使用的,在1200中已经改成了SCALE了。
Good Luck~
19-02-10 18:00

引用 qq362176248 在 2019/2/10 13:42:02 发言【内容省略】

No,Sir,不过这个内容已经在数年前已经讨论过了,第一次在这里详细讨论的人那个人拥有火影的头像,那人贴出了更为详细的转换过程,包括前期的NORM函数,这里不是其他地方,百度转贴个就能获得精华贴的。
另外,作为这里的版主,这种毫无营养的回帖尽量少发。
Good Luck~
最后修改:2019/2/10 18:05:48
19-02-10 18:02

引用 cvlsam 在 2019/2/10 18:02:46 发言【内容省略】

表示尴尬了,这个真的没有注意到这个是转帖,我还以为是自己编写的呢。抱歉
19-02-10 18:08
之前不知道有没有这个,我是根据自己的情况来发帖,用到就发帖,请问一下,该篇出自哪里,百度贴吧?我是通过自己的情况,有变送器,温度PT100还有自己程序
最后修改:2019/2/10 18:19:56
19-02-10 18:08
版主楼主要求你指出处,这个帖子是抄袭或者百度的
19-02-13 22:37

上一页下一页

工控新闻

更多新闻资讯