找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
L 0
A #I_EnableSetPointSetting //~ falls Sollwertvorgabe 黚er Bus erlaubt
JCN SWDR //~ --> aufbereiten Sollwert an Frequenzumformer ausgeben
L #I_SetPointSetting //~ Sollwert vorbereitend laden
A #I_SetPointType //~ Normierung gew黱scht?
JC SWDR
//~ --- Sollwertnormierung ---
ITD //~ umwandeln in 32-Bit Ganzzahl
DTR //~ umwandeln in Gleitpunktzahl
L 1.638400e+001 //~ mit 16,384 multiplizieren (0.0% - 100.0% entspricht 0 - 16384)
*R
RND //~ zur點kwandeln in 32-Bit Ganzzahl
L L#0 //~ mit "0" vergleichen
>=I
JCN SWDR
TAK //~ 0 <= Sollwert <= 4000 hex (= 16384 dez)
L W#16#4000
<=I //~******************************************************************
JCN SWDR
TAK
SWDR: NOP 0
T #Control.SetPoint
这是给定值处理,请问为什么乘以 1.638400e+001 ,我知道16384是对应100%,哪位大虾能逐句解释下,谢谢了!
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
看了这段程序感觉有点问题,前面的第一个JCN和第一个JC跳转觉得没有什么问题,因为跟具体的应用有关;而后面再数据处理的过程中的JCN跳转,感觉有点问题,都跳转到NOP 0
时,只要跳转到该位置不论什么值都会被传送给#Control.SetPoint,就失去了数据处理的意义了;所以我觉实际的应用中#I_SetPointType常为1 ,数据的处理过程被跳过。
我认为的程序:
L 0
A #I_EnableSetPointSetting //为0时直接跳转并将0给#Control.SetPoint;
JCN SWDR
L #I_SetPointSetting //ACC1的值为 #I_SetPointSetting
A #I_SetPointType //为1时直接跳转并ACC1里的值直接转入#Control.SetPoint中,这里与数据的类型有关;
JC SWDR
// 以下这段程序就是对设定值#I_SetPointSetting进行处理:
ITD
DTR
L 1.638400e+001
*R
RND // #I_SetPointSetting乘以16.384后取整后保存在ACC1里。
L L#0
>=I // 小于0时跳转到SWDR 1
JCN SWDR1
TAK
L W#16#4000
<=I //大于 W#16#4000跳转到SWDR1
JCN SWDR1
TAK
SWDR: T #Control.SetPoint
BEC
SWDR1 : L 0
JU SWDR
NOP 0
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城