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