设为首页
收藏本站
开启辅助访问
切换到窄版
积分充值
登录
立即注册
微信扫码登录
首页
首页
共享资源
BBS
视频教程
AI聊天机器人
VIP充值
论坛
搜索
搜索
程序分享
文库分享
软件下载
变频手册
干货教程
成套课件
使用必看
GPT3.5免费体验版
万能程序翻译
WinCC脚本编程机器人(VIP免费)
GPT3.5完整版(VIP免费)
自控工程师3.5(VIP免费)
GPT4.0完整版-线路1(VIP免费)
自控工程师4.0版-线路1(VIP免费)
GPT更多线路及版本
最新提现记录
恭喜
admin
于 2023-6-6 15:17 成功提现
500元
恭喜
admin
于 2023-5-3 09:45 成功提现
400元
本版
用户
智控联盟
»
共享资源
›
精选专区
›
ChatGPT专区
›
编程序专区
›
编写一个西门子1500PLC模拟量转换程序
返回列表
发新帖
编写一个西门子1500PLC模拟量转换程序
[复制链接]
2808
|
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
帖子
1万
积分
超级版主
积分
18238
加好友
发消息
回复楼主
返回列表
用户使用心得及帮助
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免费)
万能程序翻译
编程序专区