设为首页
收藏本站
开启辅助访问
切换到窄版
积分充值
登录
立即注册
微信扫码登录
首页
首页
共享资源
BBS
视频教程
AI机器人
VIP充值
论坛
搜索
搜索
程序分享
文库分享
软件下载
变频手册
干货教程
成套课件
新版AI机器人
老版GPT
最新提现记录
恭喜
admin
于 2023-6-6 15:17 成功提现
500元
恭喜
admin
于 2023-5-3 09:45 成功提现
400元
本版
用户
智控联盟
»
共享资源
›
精选专区
›
ChatGPT专区
›
编程序专区
›
编写一个西门子1500PLC模拟量转换程序
返回列表
发新帖
编写一个西门子1500PLC模拟量转换程序
[复制链接]
3369
|
3
|
2023-3-25 18:20:53
|
显示全部楼层
|
阅读模式
编写一个西门子1500PLC模拟量转换程序,是将模拟量通道IW数值转换成浮点数工程量,信息如下:
1、编程软件版本为博途V15
2、用SCL语言编程,程序是写在FB功能块中
3、可以设置工程量上下限量程
4、要符合西门子博途编程规则
回复
使用道具
举报
chatGPT_小柔
|
2023-3-25 18:21:17
|
显示全部楼层
以下是一个基本的博途V15 SCL语言编写的西门子1500PLC模拟量转换程序:
FUNCTION_BLOCK FB_AnalogConversion
TITLE = \'Analog Conversion\'
VERSION : INT := 1.0; (*版本号*)
VAR_INPUT
IW_Value : INT; (*模拟量通道IW数值*)
Low_Range : REAL; (*工程量下限*)
High_Range : REAL; (*工程量上限*)
END_VAR
VAR_OUTPUT
Convert_Value : REAL; (*转换后的浮点数工程量*)
Error_Code : INT; (*错误代码*)
END_VAR
VAR
Range : REAL; (*工程量量程*)
END_VAR
(*检查工程量下限和上限*)
IF Low_Range >= High_Range THEN
Error_Code := 1; (*错误代码为1,表示工程量下限不能大于等于上限*)
ELSE
Range := High_Range - Low_Range;
Convert_Value := ((IW_Value / 32767.0) * Range) + Low_Range; (*计算转换后的工程量*)
Error_Code := 0; (*没有错误发生*)
END_IF
END_FUNCTION_BLOCK
调用该FB功能块时,只需要输入IW_Value(模拟量通道IW数值)、Low_Range(工程量下限)和High_Range(工程量上限),就可以得到Convert_Value(转换后的浮点数工程量)和Error_Code(错误代码,如果为0则没有错误发生)。需要注意的是,在编写该程序时,要遵守西门子博途编程规则,如良好的命名规范、注释等。
回复
使用道具
举报
花满楼是也
|
2023-3-25 18:37:16
|
显示全部楼层
我像在这个程序里面再增加浮点数工程量的高高限、高限、低限、低低限报警设定和输出
回复
使用道具
举报
chatGPT_小柔
|
2023-3-25 18:37:55
|
显示全部楼层
以下是修改后的程序,新增了浮点数工程量的高高限、高限、低限、低低限报警设定和输出功能:
[code]
FUNCTION_BLOCK FB_AnalogConversion
TITLE = \'Analog Conversion\'
VERSION : INT := 1.1; (*版本号*)
VAR_INPUT
IW_Value : INT; (*模拟量通道IW数值*)
Low_Range : REAL; (*工程量下限*)
High_Range : REAL; (*工程量上限*)
HH_Limit : REAL; (*工程量高高限报警*)
H_Limit : REAL; (*工程量高限报警*)
L_Limit : REAL; (*工程量低限报警*)
LL_Limit : REAL; (*工程量低低限报警*)
END_VAR
VAR_OUTPUT
Convert_Value : REAL; (*转换后的浮点数工程量*)
Error_Code : INT; (*错误代码*)
HH_Alarm : BOOL; (*高高限报警*)
H_Alarm : BOOL; (*高限报警*)
L_Alarm : BOOL; (*低限报警*)
LL_Alarm : BOOL; (*低低限报警*)
END_VAR
VAR
Range : REAL; (*工程量量程*)
END_VAR
(*检查工程量下限和上限*)
IF Low_Range >= High_Range THEN
Error_Code := 1; (*错误代码为1,表示工程量下限不能大于等于上限*)
ELSE
Range := High_Range - Low_Range;
Convert_Value := ((IW_Value / 32767.0) * Range) + Low_Range; (*计算转换后的工程量*)
HH_Alarm := (Convert_Value >= HH_Limit); (*高高限报警*)
H_Alarm := (Convert_Value >= H_Limit); (*高限报警*)
L_Alarm := (Convert_Value <= L_Limit); (*低限报警*)
LL_Alarm := (Convert_Value <= LL_Limit); (*低低限报警*)
Error_Code := 0; (*没有错误发生*)
END_IF
END_FUNCTION_BLOCK
[/code]
在调用该FB功能块时,需要输入IW_Value(模拟量通道IW数值)、Low_Range(工程量下限)、High_Range(工程量上限)、HH_Limit(工程量高高限报警设定)、H_Limit(工程量高限报警设定)、L_Limit(工程量低限报警设定)和LL_Limit(工程量低低限报警设定)。输出的Convert_Value是转换后的浮点数工程量,HH_Alarm为高高限报警输出(如果为TRUE表示超出了设定范围),H_Alarm为高限报警输出,L_Alarm为低限报警输出,LL_Alarm为低低限报警输出。需要注意的是,在编写该程序时,要遵守西门子博途编程规则,如良好的命名规范、注释等。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
花满楼是也
8
主题
36
帖子
2万
积分
超级版主
积分
20638
加好友
发消息
回复楼主
返回列表
用户使用心得及帮助
GPT3.5免费体验版
GPT3.5完整版(VIP免费)
自控工程师3.5(VIP免费)
伺服变频维修工程师(VIP免费)
GPT4.0-完整版-线路1(VIP免费)
GPT4.0-完整版-线路2(VIP免费)
GPT4.0-完整版-线路3(VIP免费)
自控工程师4.0版-线路1(VIP免费)
自控工程师4.0版-线路2(VIP免费)
自控工程师4.0版-线路3(VIP免费)
WinCC脚本编程机器人(VIP免费)
万能程序翻译
编程序专区