『7x24小时有问必答』
  电流输入
这是一个4-20mA电流模拟量输入通道,对应PLC内部数字量范围是 0~16000,程序的核心目标就是把这个数字量转换成实际物理值
▼ ①  MOV H0FFF3 U0\G0:
把十六进制常数 H0FFF3 写入到智能功能模块(模拟量模块)的缓冲存储器(BFM)U0\G0中 ; U0 代表模块号0,G0 代表缓冲存储器地址0
H0FFF3 是通道1的模式设置:设置为4-20mA电流输入模式,对应数字量范围0~16000   给模拟量模块设置正确的输入类型,让它能正常采集4-20mA信号。
▼ ②  MOV U0\G10 D0:
把模拟量模块通道1的采集值(存储在BFM地址G10),传送到PLC内部数据寄存器 D0 中,把硬件采集到的数字量,读入PLC内部寄存器,方便后续计算。
▼ ③  FLT D0 D2:把 D0 中的16位整数,转换成32位浮点数,结果存储在 D2(占用D2、D3两个寄存器)中
为什么要转浮点数;因为后面要做除法运算,整数除法会丢失小数精度,用浮点数可以保留计算结果的小数位
▼ ③  DEDIV D2 K160 D4:
双精度浮点数除法指令 ;原始数字量范围是 0~16000,对应4-20mA;
除以160之后,结果范围变成 0~100(16000 ÷ 160 = 100),  也就是说,这里是把0~16000的数字量,转换成了0~100的工程值(比如0~100%、0~100℃、0~100m³/h等,具体物理量由你的传感器量程决定)储存到D4里面

  电压输出
▼ ①    MOV H0 U1\G0:
把常数 H0(十六进制0)写入DA模块的缓冲存储器 U1\G0 ;  U1 代表模块号1,G0 是模块的模式设置地址
写入 H0 就是把通道1设置为0~10V电压输出模式,对应数字量范围0~32000,给DA模块设置正确的输出类型,确保它能正常输出0~10V电压。
▼ ②  DEMUL D10 K640 D12
DEMUL 是双精度浮点数乘法指令 ;你的频率范围是 0~50Hz,需要转换成 0~32000 的数字量,换算系数 = 32000 ÷ 50 = 640   所以 频率值 × 640 就能得到对应的数字量(比如50Hz × 640 = 32000,正好对应10V)  这里用浮点数乘法,是为了保留频率计算的小数精度,避免直接整数乘法导致的误差
▼ ③  INT D12 D14  

浮点数转整数指令   因为DA模块的缓冲存储器只接受整数形式的数字量,浮点数无法直接写入
▼ ④  MOV D14 U1\G4  
  把 D14 里的整数数字量,写入DA模块通道1的输出缓冲存储器 U1\G4  U1\G4 是三菱4DA模块通道1的数字量输出地址,写入这个地址后,模块就会根据数字量输出对应的电压,让DA模块输出与频率对应的0~10V电压信号
好文分享:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码