使用的PLC是匯川easy521,從站是激光測距儀器,一開始用的0-10V模擬量獲取位置,但發現激光測距距離一旦遠了,plc獲取的為位置信息與儀器顯示的位置Zui大偏差有5cm,嚴重影響RGV定位,所以改采用485通訊(由于一開始485通訊不上,今天改換另一臺激光測距儀器,發現之前的儀器485通訊是壞的),485通訊讀取的數據,高低字是獨立的兩個字(后面發現低字讀取的數據有負數,負數在計算機計算器中進行轉換,二進制數據編程了64位,后面想了想,懷疑是有數據沒讀到,所以用DINT類型) 。
這是激光測距儀器的通訊地址(十進制地址是21,22):
通訊地址設置如圖:
通訊獲取的相關地址數據后,先把高位字進行處理,把高位字向左移動16位,從而獲得,一開始我用的是SHL指令,但發現easy沒有AM系列PLC簡便,于是采用高低位字調換指令,即xchp指令,指令具體使用如下說明:
根據指令提示,進行如下操作:通訊獲得激光測距儀器的高位字數據D30(dint類型),低位字數據D32(dint類型),此時D30數值為2,D32數字為656,先把數據進行計算,在電腦自帶的計算器進行就算,儀表顯示的值轉換成二進制為:0010 0000 0010 1001 0000,656數值轉換成二進制為0010 1001 0000,2轉換成二進制為0010,發現只要把0010放在0010 1001 0000就變成了目標值。
首先先把高位數據2向左移動16位,采用高低位轉化指令,先把D30的數據D30,D31分別賦值給D36 ,D37。
然后使用xchp指令,調換高低字位置:
再把獲得的數據D36(dint類型)賦值給D34,相當于獲得轉換后的數據,131072,131072轉換成二進制位:0010 0000 0000 0000 0000,觀察數據,可以發現1往左移動了16位:
然后再把D34與D32相加(此處我有點不理解,但使用加法,得到的數值與儀器顯示的數據相等,明天再去驗證一下,是否適應各個數據):
驗證:把131728轉換成二進制,得到的數據:
與實際測量值相等。
本來我想用or指令進行計算,(D30 or D32),32位數據進行運行,但發現使用autoshop不是很熟練,所以放棄此方法;
- PLC中通訊常用到的心跳功能 2024-12-04
- S7-1200 PLC 選擇:工業應用指南了解如何通過實際工業應用選擇正確的 S7-1200 PLC 2024-12-04
- 伺服原點回歸說明及相關參數設置 2024-12-04
- PLC程序,兩條輸送線防止連包程序 2024-12-04
- PLC中線圈失電的同時有置位觸發,在置位觸發條件失電,置位信號復位 2024-12-04
- 485通訊和模擬量數據更新頻率對比 2024-12-04
- 零基礎學西門子PLC(14):這兩個指令搞不明白,編程就無從談起 2024-12-04
- 零基礎學西門子PLC(12):水泵自動補水,編程分解 2024-12-04
- 零基礎學西門子PLC(11):常開常閉經常搞混,這樣講你就明白了 2024-12-04
- 零基礎學西門子PLC(10):之時間去哪了(PLC定時器)。 2024-12-04
- 零基礎學西門子PLC(9):之(置位和復位)簡單但很有用。 2024-12-04
- 零電氣基礎學西門子PLC(8):之理解程序內的(編程觸點) 2024-12-04
- 零基礎學習西門子PLC(7):圣旨(程序)來了 2024-12-04
- 零基礎學西門子PLC(6):之數據類型和內存詳解(4)。 2024-12-04
- 零基礎學西門子PLC(5):之 數據類型和內存詳解(3)。 2024-12-04
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684