成人精品免费看,大鸡巴插的她嗷嗷叫视频,老熟妇grαnnyhd,我干网日日日日日日日日

luyanlong1
不停的學(xué)習(xí),努力!
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 152 個
工控威望: 798 點
下載積分: 4974 分
在線時間: 90(小時)
注冊時間: 2013-05-20
最后登錄: 2025-04-19
查看luyanlong1的 主題 / 回貼
樓主  發(fā)表于: 2016-08-21 12:05
PLC發(fā)送8個字節(jié),儀表回應(yīng)21個字節(jié),用8位的寄存器沒問題,但是用16位的話,儀表回應(yīng)回來的21個字節(jié)會出現(xiàn)錯位,大俠們有什么好辦法處理一下
lvpretend
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 1266 個
工控威望: 1436 點
下載積分: 3703 分
在線時間: 324(小時)
注冊時間: 2015-07-20
最后登錄: 2025-02-25
查看lvpretend的 主題 / 回貼
1樓  發(fā)表于: 2016-08-21 16:45
你傳回來的數(shù)據(jù)加入放在D2000開始。

D2005是數(shù)據(jù)字1的高8位,但在PLC里卻是放在低8位的,也就是需要把數(shù)據(jù)左移動8位,實際上就是乘以256(16#100)。

由于臺達乘法運算比移位運算更快(處理器有專用乘法器),所以就是D2005 * 256

注意,16位乘法的結(jié)果是32位的,也就是占用2個16位數(shù)據(jù),我們只需要低16位。所以這也是我喜歡全部用浮點數(shù)來運算的原因,反正是32位,不去管16位/32位之間的轉(zhuǎn)換問題,慢也慢不到哪里去。

MUL  D2005   256   D100
這時D100中的數(shù)據(jù)就是D2005左移8位的數(shù)據(jù)了。

D2006是數(shù)據(jù)字1的低8位,在PLC里本就是放在低8位的,不用管它。

ADD D2006  D100  D200

這個時候D200中的數(shù)據(jù)就是按要求組合完成的16數(shù)據(jù)了。

再下來把這個16位數(shù)據(jù)轉(zhuǎn)換成32位浮點數(shù)

FLT D200  D300   ,為了運算方便,建議不要直接采用地址,而采用變量定義,比如這里定義一個浮點數(shù) R1

則上條指令就是  FLT D200 R1

然后進行小數(shù)點處理,因為有3個小數(shù)位,所以R1/1000
DEDIV  R1  1000.00  R1  
    
注意,常數(shù)要帶小數(shù)點,系統(tǒng)才知道是浮點數(shù)。
這個時候R1中就把小數(shù)位搞好了。

再來做符號位
D2003是符號位,為1就是負數(shù),那么就可以用接點邏輯運算來做
LD=  D2003   1     DEMUL  R1  -1.00 R1

這樣就OK了。
當(dāng)然,移位也可以,指令還要精簡些,但速度差不多。

寫得有點煩鎖,不知道有寫錯的地方?jīng)]有,你參考下,用仿真寫段指令試下。
本帖最近評分記錄:
  • 下載積分:+3(luyanlong1) 真誠感謝!

    陆丰市| 大兴区| 新巴尔虎右旗| 靖安县| 桐乡市| 柘城县| 福泉市| 喀喇| 武邑县| 孟连| 友谊县| 兴安县| 达拉特旗| 定结县| 淮北市| 静宁县| 夏邑县| 陕西省| 文水县| 定陶县| 巫溪县| 年辖:市辖区| 西平县| 万年县| 徐闻县| 天峨县| 遂平县| 武夷山市| 卢湾区| 公主岭市| 安义县| 洪泽县| 女性| 重庆市| 东海县| 思茅市| 宜阳县| 鲁甸县| 乐亭县| 莒南县| 雅江县|