上位机与欧姆龙PLC的Fins tcp通讯
參考1:(147條消息) 歐姆龍PLC的FinsTCP協(xié)議_weixin_37700863的博客-CSDN博客_歐姆龍fins協(xié)議tcp??
參考2:(147條消息) FinsTCP協(xié)議報文詳細分析_常哥說編程的博客-CSDN博客_fins協(xié)議
參考3:(147條消息) 歐姆龍FINS通訊命令實例詳解_搬磚dog的博客-CSDN博客_歐姆龍fins
上述文檔中有部分描述錯誤、不清,互相印證來看。?
1、歐姆龍PLC的默認端口號為9600,將上位機PC與PLC設置為同一網(wǎng)段,驗證是否能ping通
2、不同一般的socket通訊,與歐姆龍plc進行正式讀寫前,首先要進行一次握手確認。這里不同于tcp/ip里的connect三次握手,而是在對PLC進行讀寫之前,首先PC發(fā)送固定命令給PLC進行握手確認。這是第一步,否則無法建立有效通訊!如果握手失敗,通訊即斷開。
3、Fins幀格式中,目標節(jié)點(DA1)、源節(jié)點(SA1),是對應設備IP地址最后一段的16進制數(shù)。假設PC的IP地址:192.168.2.20,PLC的地址:192.168.2.15,當PC發(fā)送命令給PLC時,DA1 = 15 = 0x0F,SA1 = 20 = 0x14。當PLC反饋給PC命令時,DA1 = 20 = 0x14,SA1 = 15 = 0x0F。
4、讀取/寫入存儲區(qū)的地址格式是3個字節(jié)address,起始地址(2byte)+位地址(1bypte)。位地址為00,起始地址為操作存儲區(qū)地址的16進制數(shù)。如果DM2000,則起始地址為:07D0,位地址為00。結合起來為07D000
5、所有命令為16進制發(fā)送,實現(xiàn)過程是:16進制字符串->每2位字符串轉成對應的16進制數(shù)->轉成10進制->賦值給對應位置的字符數(shù)組元素。例如FINS幀頭:“46494E53”,?"46" -> 0x46 -> 70 ->chSend[0] = 70;以此類推
總結
以上是生活随笔為你收集整理的上位机与欧姆龙PLC的Fins tcp通讯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 佳博热敏条码打印机修改ip_高赋码热转印
- 下一篇: 字符串不替代_TI-Nspire 系列的