希望有在那裏誰需要一些娛樂無聊的PLC MODBUS專家..我要瘋了試圖弄清楚這一點。PLC/Modbus讀線圈狀態(MODBUS TK)
我想讀一個東元SG2 20VR-d的輸出線圈Q1至Q8的狀態。
我在Python中使用Modbus-TK,我可以很容易地與PLC通信寫入線圈,讀取寄存器等。但我無法弄清楚怎麼讀出輸出線圈Q1-Q8,所以我可以檢查他們的狀態。
地址表在附件PDF第29/31頁。我的單位是V3型。
如果你讀了29頁的小字有關於通過10小時乘以一些晦澀的消息????幫幫我!
當我使用這個命令時,我得到一個簡單的元組,其唯一值爲零。
slave_address = 1
command = 1 #read coils
coil_address = 11312 # this is 2c30h converted to decimal. 2c30h is the address for Q1 according to the pdf
master.execute(slave_address, command, coil_address)
(當我評價Pycharm ..表達這個我所得到的) 返回:
result = {tuple} <type 'tuple'>:()
__len__ = {int} 0
麻煩的是Q1通電(關閉),因此它應該顯示1或65280不爲0 ,所以這不可能是正確的。
我應該使用線圈地址的某種範圍?任何人都可以解釋這應該怎麼做?
感謝...你在哪裏找到MODBUS-TK的文件。我一直在尋找高和低良好的文檔,但沒有找到它。 –
我沒有看到任何獨立文檔,但是在https://github.com/ljean/modbus-tk/blob/master/modbus_tk/modbus.py – jasonharper
的源文件中找到了docstrings。線圈爲16的倍數是非常尷尬的,非標準行爲。無論如何,這是Modbus,每個實現都有其怪癖。只需使用16作爲線圈的數量,它應該工作, – Ronaldo