首页 > 付费 > 正文

目录

一、代码解读

二、模拟软件测试

三、VS软件配置

四、PLC配置

一、代码解读

       现目前市面上绝大部分PLC都支持ModbusTcp通讯协议,所以本篇文章介绍用C++语言编写一个ModbusTcp类来实现PLC寄存器的读取和写入操作。
ModbusTcp的协议可参看《MODBUS通讯协议中文版.pdf》,重点看一下第五、六两章就可以了

        写了一个CmodbusTcp类,通过两个函数(readData和writeData)完成读写多个寄存器的操作,可以设置读写起始地址和读写个数,在实际项目中用这两个函数就够了,下面主介绍readData这个函数,看懂这一个,别一个也就会了。先上readData函数的截图,共3张,便于好看,每张首尾有一至两行重复。

        第二张图拼接报文部分是根据《MODBUS通讯协议中文版.pdf》中第五章来的,我们用到的读多个寄存器功能码03,写多个寄存器功能码10(16进制),其它的可以不用研究。

        在参考第六章的03功能码解释就完成了上述代码,功能码解释截图如下

        中间会用到将16进制字符串转成ASCII码字符指针的函数Str2Hex(string str, char* data)还有字符转16进制函数HexChar(char c),截图如下

        配套例程中工控机是作的服务器,用模拟软件Modbus Slave模拟一个从站来实现通讯,如果有PLC,就可以直接用PLC实现通讯,各家PLCModbusTcp通讯设置不一样,本例中配套了松下FP0HPLC程序,用的的客户端连接3来实现的ModbusTcp通讯。

二、模拟软件测试

先解压modbusslave_70166并安装ModbusSlaveSetup64Bit.exe

         安装后首次运行需要复制SN2.txt中的序列号注册到下图红色框处

       然后点击下图中打开文件《电脑模拟从站软件和配置》文件夹中的《Mbslave模拟.mbs》文件,这个是设置好的,也可自己新建一个并配置,打开《Mbslave模拟.mbs》文件后如下图

再点击Connection配置连接

配置如下

点击OK,模拟从站就可以用了

三、VS软件配置

解压《CmodbusTcp(用的VS2017).rar》并用Visual Studio软件打开,如果是VS2013版过后的需要将SDL检查关闭(否则要报旧的函数错误),如下图

         现在观察刚才配置的Modbus Slave模拟软件会发现它的数据在随机变化,则说明已经成功通讯并向从站写入了数据。

四、PLC配置

各个厂家的PLC软件不一样,这里以松下的为例,记录配置过程,实际上的配置只需要注意三点:

  1. IP地址
  2. 端口号
  3. PLC是用作从站还是主站,本例中是用作从站 

       上图中PLC设置的192.168.3.122,那么电脑网口也要设置到同一段,设置电脑网口设置参考

https://jingyan.baidu.com/article/3d69c5517d8aecb1cf02d7a4.html

       配置好后,PLC不用写程序,只需要监控寄存器地址变化就可以,查松下的FP0H通信手册,保持寄存器400001-465533 对应DT0-DT65532,其它家的PLC也可查各自的手册得到

猜你喜欢
picture loss