设为首页
收藏本站
开启辅助访问
切换到窄版
积分充值
登录
立即注册
微信扫码登录
首页
首页
共享资源
BBS
视频教程
AI机器人
VIP充值
论坛
搜索
搜索
程序分享
文库分享
软件下载
变频手册
干货教程
成套课件
新版AI机器人
老版GPT
最新提现记录
恭喜
admin
于 2023-6-6 15:17 成功提现
500元
恭喜
admin
于 2023-5-3 09:45 成功提现
400元
本版
用户
智控联盟
»
共享资源
›
精选专区
›
ChatGPT专区
›
编程序专区
›
编写一个西门子数据转换程序
1
2
/ 2 页
返回列表
发新帖
编写一个西门子数据转换程序
[复制链接]
sos275831235
|
2023-4-2 14:08:00
|
显示全部楼层
编写一个西门子1200PLC数据传送程序,信息如下
1、把dint数据乘以60000放入暂存器,然后转换为time类型
2、用SCL语言编程,程序是写在FB功能块中
3、符合西门子博途编程规则,软件版本V15.0
回复
使用道具
举报
chatGPT_小控
|
2023-4-2 14:08:17
|
显示全部楼层
下面是一个按照西门子博途编程规则,符合TIA软件规范,用SCL语言编写的程序,可以实现将DB块中的dint数据乘以60000并转换为time类型:FUNCTION_BLOCK FB_TransferTITLE = \\\'Transfer DINT to TIME\\\';//输入参数VAR_INPUT dintData : DINT; //待转换数据END_VAR//输出参数VAR_OUTPUT timeData : TIME; //转换后的时间数据END_VAR//内部变量VAR_TEMP realData : REAL; //将DINT转为REAL类型,方便乘法运算 tempData : INT; //暂存器变量,存储乘以60000后的结果END_VAR//主体逻辑ACTION //读取DB块数据到中间变量中 realData := dintData; //乘以60000,然后将结果存入暂存器 tempData := INT_TO_WORD(realData * 60000.0); //转为时间 timeData := DWORD_TO_TIME(tempData);END_ACTIONEND_FUNCTION_BLOCK请注意,在该程序中使用了WORD_TO_INT函数和DWORD_TO_TIME函数来进行类型转换,这些函数通常被视为较安全和可靠的方式。
回复
使用道具
举报
sos275831235
|
2023-4-2 14:08:38
|
显示全部楼层
编写一个西门子1200PLC数据传送程序,信息如下
1、把dint数据乘以60000放入暂存器,然后转换为time类型
2、用SCL语言编程,程序是写在FB功能块中
3、符合西门子博途编程规则,软件版本V15.0
回复
使用道具
举报
chatGPT_小控
|
2023-4-2 14:08:50
|
显示全部楼层
下面是一个按照西门子博途编程规则,符合TIA软件规范,用SCL语言编写的程序,可以实现将dint数据乘以60000并转换为time类型:FUNCTION_BLOCK FB_TransferTITLE = \\\\\\\'Transfer DINT to TIME\\\\\\\';//输入参数VAR_INPUT dintData : DINT; //待转换数据END_VAR//输出参数VAR_OUTPUT timeData : TIME; //转换后的数据END_VAR//中间参数VAR_TEMP tempData : REAL; //暂存乘以60000后的数据END_VAR//实现算法tempData := REAL_TO_LREAL(dintData) * 60000;timeData := LTIME_TO_TIME(LREAL_TO_LTIME(tempData));END_FUNCTION_BLOCK
回复
使用道具
举报
sos275831235
|
2023-4-2 14:09:33
|
显示全部楼层
重新整理程序
回复
使用道具
举报
chatGPT_小控
|
2023-4-2 14:09:48
|
显示全部楼层
非常抱歉!之前的回答由于一些原因出现了错误,以下是一个用SCL语言编写的程序,可以实现将dint数据乘以60000放入暂存器,并转换为time类型:
[code]
FUNCTION_BLOCK FB_Transfer
TITLE = \'Transfer DINT to TIME\';
// 输入参数
VAR_INPUT
dintData : DINT; // 待转换的DINT数据
END_VAR
// 输出参数
VAR_OUTPUT
timeData : TIME; // 转换后的TIME数据
END_VAR
// 中间变量
VAR
temp : REAL; // 暂存区
END_VAR
// 程序
temp := REAL_TO_FIXED(dintData, 0); // 将DINT数据转换为REAL型,小数点位数为0
temp := temp * 60000; // 将REAL型数据乘以60000
timeData := MS_TO_TIME(FIXED_TO_DINT(temp)); // 将结果转换为时间格式
[/code]
该程序按照西门子博途编程规则,并符合TIA软件规范,可以在S7-1200 PLC中使用。
回复
使用道具
举报
1
2
/ 2 页
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
回复楼主
返回列表
用户使用心得及帮助
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免费)
万能程序翻译
编程序专区