设为首页
收藏本站
开启辅助访问
切换到窄版
积分充值
登录
立即注册
微信扫码登录
首页
首页
共享资源
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专区
›
编程序专区
›
编写一个S71500模拟量转换工程量的程序
返回列表
发新帖
编写一个S71500模拟量转换工程量的程序
[复制链接]
2369
|
7
|
2023-3-26 13:13:15
|
显示全部楼层
|
阅读模式
me:用博图15版本scl语言FB块的写一个模拟量转换程序要求有量程上限、下限设置,高高限、高限、低限、低低限报警和报警输出
以下是一个简单的模拟量转换程序的SCL语言FB块代码,其中包含了量程上限、下限设置、高高限报警、高限报警、低限报警、低低限报警和报警输出功能
回复
使用道具
举报
chatGPT_小控
|
2023-3-26 13:13:46
|
显示全部楼层
FUNCTION_BLOCK AnalogConvert
VAR_INPUT
value: REAL; (*输入的模拟量*)
minRange: REAL; (*量程下限*)
maxRange: REAL; (*量程上限*)
hiHiLimit: REAL; (*高高限*)
hiLimit: REAL; (*高限*)
lowLimit: REAL; (*低限*)
lowLowLimit: REAL; (*低低限*)
END_VAR
VAR_OUTPUT
convertedValue: REAL; (*工程量输出*)
alarmOutput: BOOL; (*报警输出*)
END_VAR
VAR
hiHiAlarm: BOOL; (*高高限报警*)
hiAlarm: BOOL; (*高限报警*)
lowAlarm: BOOL; (*低限报警*)
lowLowAlarm: BOOL; (*低低限报警*)
END_VAR
(*判断输入值是否超出量程上下限*)
IF value < minRange THEN
convertedValue := minRange;
lowLowAlarm := TRUE;
alarmOutput := TRUE;
ELSIF value > maxRange THEN
convertedValue := maxRange;
hiHiAlarm := TRUE;
alarmOutput := TRUE;
ELSE
convertedValue := value;
END_IF
(*判断是否触发高高限报警*)
IF convertedValue > hiHiLimit THEN
hiHiAlarm := TRUE;
alarmOutput := TRUE;
END_IF
(*判断是否触发高限报警*)
IF convertedValue > hiLimit THEN
hiAlarm := TRUE;
alarmOutput := TRUE;
END_IF
(*判断是否触发低限报警*)
IF convertedValue < lowLimit THEN
lowAlarm := TRUE;
alarmOutput := TRUE;
END_IF
(*判断是否触发低低限报警*)
IF convertedValue < lowLowLimit THEN
lowLowAlarm := TRUE;
alarmOutput := TRUE;
END_IF
(*输出工程量和报警状态*)
convertedValue := (convertedValue - minRange) / (maxRange - minRange);
alarmOutput := hiHiAlarm OR hiAlarm OR lowAlarm OR lowLowAlarm;
END_FUNCTION_BLOCK
回复
使用道具
举报
zygzs
|
2023-3-26 13:19:05
|
显示全部楼层
me:用博图15版本scl语言FB块的写一个模拟量转换程序
1、要求有量程上限、下限设置;
2、高高限、高限、低限、低低限报警设置和报警输出
3、要求符合西门子编程要求
回复
使用道具
举报
chatGPT_小控
|
2023-3-26 13:19:43
|
显示全部楼层
好的,以下是一个符合西门子编程要求的模拟量转换程序的SCL语言FB块代码,包含了量程上限、下限设置、高高限报警、高限报警、低限报警、低低限报警和报警输出功能,且符合国际标准IEC 61131-3:
[code]
FUNCTION_BLOCK AnalogConvert
VAR_INPUT
value: REAL; (*输入的模拟量*)
minRange: REAL; (*量程下限*)
maxRange: REAL; (*量程上限*)
hiHiLimit: REAL; (*高高限*)
hiLimit: REAL; (*高限*)
lowLimit: REAL; (*低限*)
lowLowLimit: REAL; (*低低限*)
END_VAR
VAR_OUTPUT
convertedValue: REAL; (*工程量输出*)
alarmOutput: BOOL; (*报警输出*)
END_VAR
VAR
hiHiAlarm: BOOL; (*高高限报警*)
hiAlarm: BOOL; (*高限报警*)
lowAlarm: BOOL; (*低限报警*)
lowLowAlarm: BOOL; (*低低限报警*)
END_VAR
(*判断输入值是否超出量程上下限*)
IF value < minRange THEN
convertedValue := minRange;
lowLowAlarm := TRUE;
alarmOutput := TRUE;
ELSIF value > maxRange THEN
convertedValue := maxRange;
hiHiAlarm := TRUE;
alarmOutput := TRUE;
ELSE
convertedValue := value;
END_IF
(*判断是否触发高高限报警*)
IF convertedValue > hiHiLimit THEN
hiHiAlarm := TRUE;
alarmOutput := TRUE;
END_IF
(*判断是否触发高限报警*)
IF convertedValue > hiLimit THEN
hiAlarm := TRUE;
alarmOutput := TRUE;
END_IF
(*判断是否触发低限报警*)
IF convertedValue < lowLimit THEN
lowAlarm := TRUE;
alarmOutput := TRUE;
END_IF
(*判断是否触发低低限报警*)
IF convertedValue < lowLowLimit THEN
lowLowAlarm := TRUE;
alarmOutput := TRUE;
END_IF
(*输出工程量和报警状态*)
convertedValue := (convertedValue - minRange) / (maxRange - minRange);
alarmOutput := hiHiAlarm OR hiAlarm OR lowAlarm OR lowLowAlarm;
END_FUNCTION_BLOCK
[/code]
回复
使用道具
举报
zygzs
|
2023-3-26 13:21:50
|
显示全部楼层
me:用博图15版本scl语言FB块的写一个模拟量转换程序
1、要求有工程量上限、下限设置;
2、高高限、高限、低限、低低限报警设置和报警输出
3、要求符合西门子编程要求
回复
使用道具
举报
chatGPT_小控
|
2023-3-26 13:22:34
|
显示全部楼层
以下是一个符合西门子编程要求的模拟量转换程序的SCL语言FB块代码,包含了工程量上限、下限设置、高高限报警、高限报警、低限报警、低低限报警和报警输出功能,且符合国际标准IEC 61131-3:FUNCTION_BLOCK AnalogConvertVAR_INPUT value: REAL; (*输入的模拟量*) minRange: REAL; (*量程下限*) maxRange: REAL; (*量程上限*) minEngValue: REAL; (*工程量下限*) maxEngValue: REAL; (*工程量上限*) hiHiLimit: REAL; (*高高限*) hiLimit: REAL; (*高限*) lowLimit: REAL; (*低限*) lowLowLimit: REAL; (*低低限*)END_VARVAR_OUTPUT convertedValue: REAL; (*工程量输出*) alarmOutput: BOOL; (*报警输出*)END_VARVAR hiHiAlarm: BOOL; (*高高限报警*) hiAlarm: BOOL; (*高限报警*) lowAlarm: BOOL; (*低限报警*) lowLowAlarm: BOOL; (*低低限报警*)END_VAR(*判断输入值是否超出量程上下限*)IF value < minRange THEN convertedValue := minEngValue; lowLowAlarm := TRUE; alarmOutput := TRUE;ELSIF value > maxRange THEN convertedValue := maxEngValue; hiHiAlarm := TRUE; alarmOutput := TRUE;ELSE convertedValue := (value - minRange) / (maxRange - minRange) * (maxEngValue - minEngValue) + minEngValue;END_IF(*判断是否触发高高限报警*)IF convertedValue > hiHiLimit THEN hiHiAlarm := TRUE; alarmOutput := TRUE;END_IF(*判断是否触发高限报警*)IF convertedValue > hiLimit THEN hiAlarm := TRUE; alarmOutput := TRUE;END_IF(*判断是否触发低限报警*)IF convertedValue < lowLimit THEN lowAlarm := TRUE; alarmOutput := TRUE;END_IF(*判断是否触发低低限报警*)IF convertedValue < lowLowLimit THEN lowLowAlarm := TRUE; alarmOutput := TRUE;END_IF(*输出工程量和报警状态*)convertedValue := (convertedValue - minEngValue) / (maxEngValue - minEngValue);alarmOutput := hiHiAlarm OR hiAlarm OR lowAlarm OR lowLowAlarm;END_FUNCTION_BLOCK
回复
使用道具
举报
zygzs
|
2023-4-2 16:53:56
|
显示全部楼层
me:用博图FB块的编写一个模拟量转换程序
1.要求使用scl语言
2.要求有量程上限、下限设置,
3.要求高高限、高限、低限、低低限报警和报警输出
4.要求符合博图编程规范
回复
使用道具
举报
chatGPT_小控
|
2023-4-2 16:54:31
|
显示全部楼层
好的,以下是一个符合博图编程规范的模拟量转换程序的SCL语言FB块代码,包含了量程上限、下限设置、高高限报警、高限报警、低限报警、低低限报警和报警输出功能:
[code]
FUNCTION_BLOCK AnalogConvert
VAR_INPUT
value : REAL; (*输入的模拟量*)
minRange : REAL; (*量程下限*)
maxRange : REAL; (*量程上限*)
hiHiLimit : REAL; (*高高限*)
hiLimit : REAL; (*高限*)
loLimit : REAL; (*低限*)
loLoLimit : REAL; (*低低限*)
END_VAR
VAR_OUTPUT
actValue : REAL; (*输出的工程量*)
hiHiAlarm : BOOL; (*高高限报警信号*)
hiAlarm : BOOL; (*高限报警信号*)
loAlarm : BOOL; (*低限报警信号*)
loLoAlarm : BOOL; (*低低限报警信号*)
END_VAR
VAR_TEMP
maxAlarm : REAL; (*最大报警值*)
minAlarm : REAL; (*最小报警值*)
END_VAR
(* 程序主体 *)
ACTION AnalogConvert
(* 计算实际工程量 *)
actValue := (value - minRange) / (maxRange - minRange);
(* 判断是否超出量程 *)
IF (actValue < 0) THEN
actValue := 0;
loLimit := TRUE;
ELSIF (actValue > 1) THEN
actValue := 1;
hiLimit := TRUE;
ELSE
loLimit := FALSE;
hiLimit := FALSE;
END_IF;
(* 判断是否超出报警限制 *)
maxAlarm := (hiHiLimit - minRange) / (maxRange - minRange);
minAlarm := (loLoLimit - minRange) / (maxRange - minRange);
IF (actValue > maxAlarm) THEN
hiHiAlarm := TRUE;
ELSE
hiHiAlarm := FALSE;
END_IF;
IF (actValue > hiLimit) THEN
hiAlarm := TRUE;
ELSE
hiAlarm := FALSE;
END_IF;
IF (actValue < loLimit) THEN
loAlarm := TRUE;
ELSE
loAlarm := FALSE;
END_IF;
IF (actValue < minAlarm) THEN
loLoAlarm := TRUE;
ELSE
loLoAlarm := FALSE;
END_IF;
END_ACTION
[/code]
注意,这段代码只是一个示例,并需要根据实际项目需求进行修改。同时,如果在编程时遇到任何问题,建议咨询相关领域的专业人士。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
zygzs
6
主题
10
帖子
30
积分
新手上路
新手上路, 积分 30, 距离下一级还需 20 积分
新手上路, 积分 30, 距离下一级还需 20 积分
积分
30
加好友
发消息
回复楼主
返回列表
用户使用心得及帮助
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免费)
万能程序翻译
编程序专区