无码精品人妻一区二区三区入口-无码精品人妻一区二区三区夜夜嗨-无码精品人妻一区二区三区颖A片-无码精品日本一区二区桃花岛-无码精品网站-无码精品一

wjk478
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 5 個
工控威望: 56 點
下載積分: 299 分
在線時間: 5(小時)
注冊時間: 2022-11-14
最后登錄: 2024-12-06
查看wjk478的 主題 / 回貼
樓主  發(fā)表于: 2024-01-29 20:05
請教一下論壇大佬,比如寄存器中的數(shù)值:50046其中有效數(shù)字是46,放大倍數(shù)是10的5次冪即100000那么對應的浮點數(shù)值是0.00046
                                               如果數(shù)值是:30046其中有效數(shù)字是46,放大倍數(shù)是10的3次冪即1000那么對應的浮點數(shù)值是0.046
怎么實現(xiàn)威綸通觸摸屏上顯示對應的浮點數(shù)值而不是寄存器中的數(shù)值?
夢雨天涯
微信hui530527   &
級別: 網(wǎng)絡英雄
精華主題: 0
發(fā)帖數(shù)量: 4456 個
工控威望: 7841 點
下載積分: 16187 分
在線時間: 3070(小時)
注冊時間: 2016-10-31
最后登錄: 2025-02-13
查看夢雨天涯的 主題 / 回貼
1樓  發(fā)表于: 2024-01-30 08:20
那就把你的數(shù)值除以100,找到余數(shù)46,然后余數(shù)除以100000,得到0.00046就行
微信hui530527      b站賬號,非標自動化譚工
請不要隨意加我,不會隨便通過。QQ群942493953
卓發(fā)智能
相互學習,共同進步。
級別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 2458 個
工控威望: 3067 點
下載積分: 11595 分
在線時間: 661(小時)
注冊時間: 2008-08-03
最后登錄: 2025-02-13
查看卓發(fā)智能的 主題 / 回貼
2樓  發(fā)表于: 2024-01-31 10:01
分二步,PLC需要運算一下,屏有內(nèi)差轉(zhuǎn)換設置。
相信自我!
gxtmdb82164
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 782 個
工控威望: 1160 點
下載積分: 424 分
在線時間: 617(小時)
注冊時間: 2019-09-22
最后登錄: 2025-02-13
查看gxtmdb82164的 主題 / 回貼
3樓  發(fā)表于: 2024-01-31 10:39
如果只是顯示的話,推薦HMI后寫個腳本處理,最簡單最靈活
wjk478
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 5 個
工控威望: 56 點
下載積分: 299 分
在線時間: 5(小時)
注冊時間: 2022-11-14
最后登錄: 2024-12-06
查看wjk478的 主題 / 回貼
4樓  發(fā)表于: 2024-02-01 09:52
引用
引用第1樓夢雨天涯于2024-01-30 08:20發(fā)表的  :
那就把你的數(shù)值除以100,找到余數(shù)46,然后余數(shù)除以100000,得到0.00046就行

放大倍數(shù)不是一個固定的值是寄存器數(shù)值里決定的是可變的,寄存器里的數(shù)值是一個十進制的電壓數(shù)值
wjk478
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 5 個
工控威望: 56 點
下載積分: 299 分
在線時間: 5(小時)
注冊時間: 2022-11-14
最后登錄: 2024-12-06
查看wjk478的 主題 / 回貼
5樓  發(fā)表于: 2024-02-01 10:01
引用
引用第3樓gxtmdb82164于2024-01-31 10:39發(fā)表的  :
如果只是顯示的話,推薦HMI后寫個腳本處理,最簡單最靈活

是不是觸摸屏寫段宏指令對讀取的數(shù)值進行一個數(shù)值轉(zhuǎn)換,問題是這個數(shù)值轉(zhuǎn)換思路是什么?寄存器內(nèi)數(shù)值首位是決定放大倍數(shù)后幾位是有效數(shù)值,放大倍數(shù)決定有效數(shù)值的小數(shù)位數(shù)
wjk478
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 5 個
工控威望: 56 點
下載積分: 299 分
在線時間: 5(小時)
注冊時間: 2022-11-14
最后登錄: 2024-12-06
查看wjk478的 主題 / 回貼
6樓  發(fā)表于: 2024-02-01 10:07
引用
引用第2樓卓發(fā)智能于2024-01-31 10:01發(fā)表的  :
分二步,PLC需要運算一下,屏有內(nèi)差轉(zhuǎn)換設置。

能不能屏直接讀取數(shù)值對數(shù)值進行轉(zhuǎn)換后再在屏上顯示出來,只是現(xiàn)在轉(zhuǎn)換的思路是什么?數(shù)值中包含放大倍數(shù)和有效數(shù)值怎么區(qū)別轉(zhuǎn)換
gxtmdb82164
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 782 個
工控威望: 1160 點
下載積分: 424 分
在線時間: 617(小時)
注冊時間: 2019-09-22
最后登錄: 2025-02-13
查看gxtmdb82164的 主題 / 回貼
7樓  發(fā)表于: 2024-02-01 10:43
引用
引用第5樓wjk478于2024-02-01 10:01發(fā)表的  :

是不是觸摸屏寫段宏指令對讀取的數(shù)值進行一個數(shù)值轉(zhuǎn)換,問題是這個數(shù)值轉(zhuǎn)換思路是什么?寄存器內(nèi)數(shù)值首位是決定放大倍數(shù)后幾位是有效數(shù)值,放大倍數(shù)決定有效數(shù)值的小數(shù)位數(shù)


所以讓你用宏指令讀到HMI里處理,直接轉(zhuǎn)成字符串,然后分成兩個子字符串,一個是位數(shù)一個是有效數(shù)值,然后再轉(zhuǎn)成數(shù)值運算以后寫到HMI內(nèi)部地址上,HMI直接顯示就行了
PC編程上的大數(shù)運算也是這樣操作的,什么20位數(shù)乘以20位數(shù),常規(guī)的數(shù)值系統(tǒng)都容納不了這么大的數(shù)值,都是轉(zhuǎn)成字符串以后,按四則運算的規(guī)則一位一位的算,算一位就寫一位結(jié)果到字符串里面,字符串隨便多長都無所謂

你這個等于是一個自定義的科學計數(shù)法,不過足夠簡單罷了
xuxulaifeng
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 31 個
工控威望: 122 點
下載積分: 637 分
在線時間: 44(小時)
注冊時間: 2015-01-03
最后登錄: 2024-02-04
查看xuxulaifeng的 主題 / 回貼
8樓  發(fā)表于: 2024-02-04 16:19
1.蔣數(shù)據(jù)轉(zhuǎn)換為字符串
2.PLC使用字符串指令,取第一位,得到其精度,
3.PLC使用字符串指令,取除第一位外其它的值,并轉(zhuǎn)換為整數(shù)
4.根據(jù)2 3條換算真正的浮點數(shù),50046,是數(shù)值除以100000,40046是除以10000,30046是除以1000
5.在人機中顯示浮點數(shù),設置小數(shù)點后位數(shù)是可能出現(xiàn)最小精度
wjk478
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 5 個
工控威望: 56 點
下載積分: 299 分
在線時間: 5(小時)
注冊時間: 2022-11-14
最后登錄: 2024-12-06
查看wjk478的 主題 / 回貼
9樓  發(fā)表于: 2024-02-05 16:12
macro_command main()
unsigned short c,a,e
unsigned char b[5]
float d
GetData(a, "MODBUS RTU (zero-based addressing)", 3x, 2, 1)
//讀取寄存器數(shù)值如:34567(3是放大倍數(shù),4567為有效數(shù)值)
DEC2ASCII(a, b[0], 5)//將34567轉(zhuǎn)為ASCII碼
ASCII2FLOAT(b[1], d, 4)//將4567轉(zhuǎn)為浮點數(shù)
c=b[0]-48//將3的ASCII碼減去48得出數(shù)字(放大倍數(shù))
//ASCII2DEC(b[0], c, 1)
POW(10,c,e)//10的c次方賦于e
d=d/e
SetData(d, "Local HMI", LW, 0, 1)
end macro_command
謝謝大佬們的解答幫助,初步程序如上基本實現(xiàn)顯示問題
gxtmdb82164
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 782 個
工控威望: 1160 點
下載積分: 424 分
在線時間: 617(小時)
注冊時間: 2019-09-22
最后登錄: 2025-02-13
查看gxtmdb82164的 主題 / 回貼
10樓  發(fā)表于: 2024-02-06 10:05
引用
引用第9樓wjk478于2024-02-05 16:12發(fā)表的  :
macro_command main()
unsigned short c,a,e
unsigned char b[5]
float d
GetData(a, "MODBUS RTU (zero-based addressing)", 3x, 2, 1)
.......


功能實現(xiàn)就好,距離完美的程序(別人死我不死,我死也要優(yōu)雅的死)還有兩小步
1、入?yún)z查,不能保證下位機給的數(shù)值一定是正確的,第一位如果讀到0呢?你這里可是有除法的(一般不會炸,但是萬一哪天移植到其他平臺上呢),如果大于5呢?
2、錯誤通知,這個也是要依賴特定平臺的,比如說你這里用威綸通的話,最直接的辦法就是給顯示元件設置一個極限值,最大或者最小看具體設計,總之讀取到錯誤數(shù)據(jù)后要給用戶一個良好的提示,是數(shù)據(jù)錯誤了

可能的優(yōu)化方案:
1、入?yún)z查,讀取到字符串后檢查第一位的數(shù)值范圍,理論上應該是1~5的范圍,超過這個范圍可以認為數(shù)據(jù)無效了
2、去掉除法,第一位的1~5會對應0.1到0.00001這5個小數(shù)值,取出來這個小數(shù)值和有效值相乘即可(你這個系統(tǒng)里面0到底是怎么表達的?)
3、更高階的寫法是在宏函數(shù)內(nèi)完成數(shù)值到字符串的轉(zhuǎn)換,界面元件直接顯示字符串,本身有float2Ascii的內(nèi)建函數(shù),同時可以在函數(shù)內(nèi)方便的判斷數(shù)據(jù)有效情況,反正最后輸出的字符串,數(shù)據(jù)合法范圍內(nèi)輸出這個數(shù)值的字符串結(jié)果,超過這個結(jié)果直接輸出一個ERROR或者NaN,可以更明確當前的錯誤

主站蜘蛛池模板: 国产浮力草草影院CCYY | 中文字幕免费视频精品一 | 亚洲国产欧美日韩欧美特级 | av无码一级毛片免费 | 韩国A级做爰片无码费看蚯蚓 | 91国内精品 | 精品国产三级av在线无码 | 国产黑丝一区二区 | 一本道久久综合狠狠躁 | 美女国内精品自产拍在线播放 | 日本多人强伦姧人妻bd | 91香蕉国产亚洲国产精品va在线观看一区二区三区 | 91超级碰久久久久香蕉人人 | 综合亚洲伊人午夜网 | 2024国产激情视频在 | 成人黄软件网18秘免费 | 天天综合天天中文精品日韩91 | 国产产乱码一二三区别免费 | 又黄又爽又色的少妇毛片 | 50岁人妻丰满熟妇 | 国产精品大屁股白浆一区二区 | 91视频官网入口 | 在线播放国产一区二区三区 | 成人3dh动漫在线播 成人3d动漫一区二 成人3d动漫在线观看 | 欧美精品九九久久久久久久久 | 国产边按摩边被躁在线播放 | 久久国产乱子伦精品免费观看 | 国产偷自一区 | 国产疯狂伦交大片 | 成人国产一区二区日韩 | 国产码在线成人网站 | 亚洲欧美久久美女香蕉视频 | 国产精品久在线观看 | 午夜精品一区二区三区免费视频 | 不卡免费观看高清国产黄片 | 91人妻人人澡人人爽人人精 | 国产欧洲亚洲 | 国产成人精品亚洲 | 伊人综合网 | 91日本在线视频 | 电视高清麻豆专媒体一区二区 |