设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
S7-1200模拟量处理
返回列表
发新帖
[西门子]
S7-1200模拟量处理
[复制链接]
83499
|
0
|
2024-3-28 20:12:42
|
显示全部楼层
|
阅读模式
关键词:S7-1200 模拟量 Scale Scale_x
S7-1200的模拟量处理由于Scale命令不能使用,需要重新编程;
本文对S7-1200的模拟量处理及调用进行介绍。
一、存在的问题 在S7-1500 中使用正常的Scale命令:
在S7-1200中提示出错:
因此必须重新修改程序。
二、修改后的处理方式
1) 根据西门子的相关资料,Scale的处理方式是:
OUT = [((FLOAT (IN) – K1)/(K2–K1)) ∗ (HI_LIM–LO_LIM)] + LO_LIM常数“K1”和“K2”的值取决于参数 BIPOLAR 的信号状态。参数 BIPOLAR 可能的信号状态为:信号状态“1”:假设参数 IN 的值为双极性且取值范围是 -27648 到 27648。此时,常数“K1”的值为 -27648.0,而常数“K2”的值为 +27648.0。信号状态“0”:假设参数 IN 的值为单极性且取值范围是 0 到 27648。此时,常数“K1”的值为 0.0,而常数“K2”的值为 +27648.0。 2)Scale_X的处理方式是:
3)为实现同样的功能,需要对程序进行处理: IF #PIW_IN > 27648 OR #PIW_IN < 0 THEN #RET_VAL1 := 1; ELSE #RET_VAL1 := 0; END_IF; #AI_Real_Temp := SCALE_X_REAL(MIN := #AI_Struct.LO_LIM, VALUE := #PIW_IN, MAX := #AI_Struct.HI_LIM) / 27648.0; IF #RET_VAL1 = 0 THEN ////判断数据转换是否有错 =0 表示无错误 #AI_Struct.AI_States := 1; ////无错误 #AI_Struct.AI_Valid_REAL := 1.0; ////有错误时,把AI_Reserv1_REAL赋值0.0,便于计算 ELSE #AI_Struct.AI_States := 0; /////有错误 #AI_Struct.AI_Valid_REAL := 0.0; ////有错误时,把AI_Reserv1_REAL赋值0.0,便于计算 END_IF; 三、调用方法 由于S7-1200 不支持STL指令,采用SCL调用也很方便:"AI1_料仓重量"("FC1202_DB".Int1); 直接在数据块中添加地址(本例子采用一个数据块变量,实际使用时采用PIW),使用方便 四、监控效果 运行效果如下:
五、小结 博图的功能是不断完善的,有些新的命令由于使用方法不同,需要修改原来的程序,也是不可避免的; 在S7-300的STEP7升级过程中,遇到的问题还要多些。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
博途之友
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』