精华内容
下载资源
问答
  • ModbusTCP调试工具.zip

    2021-04-22 13:23:23
    ModbusTCP调试工具
  • ModbusTCP调试软件

    2019-02-21 22:34:18
    测试ModbusTCP程序,非常方便。 输入IP地址,功能码,端口等信息,监控状态。可以查看发送日志及接收日志。
  • ModbusTcp调试用例

    千次阅读 2019-07-14 13:04:28
    namespace Modbus_TCP_Client { public partial class Form1 : Form { public Socket newclient; public bool Connected; public Thread myThread; public delegate void...

    namespace Modbus_TCP_Client
    {
        public partial class Form1 : Form
        {
            public Socket newclient;
            public bool Connected;
            public Thread myThread;
            public delegate void MyInvoke(string str);
            public Form1()
            {
                InitializeComponent();
            }

            private void exit_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }

            public void Connect()
            {
                byte[] data = new byte[1024];

                string ipadd = serverIP.Text.Trim();//将服务器IP地址存放在字符串 ipadd中
                int port = Convert.ToInt32(serverPort.Text.Trim());//将端口号强制为32位整型,存放在port中

                //创建一个套接字

                IPEndPoint ie = new IPEndPoint(IPAddress.Parse(ipadd), port);
                newclient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);


                //将套接字与远程服务器地址相连
                try
                {
                    newclient.Connect(ie);
                    connect.Enabled = false;//使连接按钮变成虚的,无法点击
                    Connected = true;

                }
                catch (SocketException e)
                {
                    MessageBox.Show("连接服务器失败  " + e.Message);
                    return;
                }

                ThreadStart myThreaddelegate = new ThreadStart(ReceiveMsg);
                myThread = new Thread(myThreaddelegate);
                myThread.Start();
                timersend.Enabled = true;

            }

            private void connect_Click_1(object sender, EventArgs e)
            {
                Connect();
            }

            private void timersend_Tick(object sender, EventArgs e)
            {
                int isecond = 5000;//以毫秒为单位
                timersend.Interval = isecond;//5秒触发一次
                byte[] data = new byte[] { 0x00, 0x0f, 0x00, 0x00, 0x00, 0x06, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01 };//这里我们不讲解04功能码,所以这里用04功能码发送,防止对其他功能码演示的干扰
                newclient.Send(data);
            }

            public void ReceiveMsg()
            {
                while (true)
                {
                    byte[] data = new byte[1024];
                    newclient.Receive(data);
                    int length = data[5];
                    Byte[] datashow = new byte[length + 6];
                    for (int i = 0; i <= length + 5; i++)
                        datashow[i] = data[i];
                    string stringdata = BitConverter.ToString(datashow);//把数组转换成16进制字符串
                    if (data[7] == 0x01) { showMsg01(stringdata + "\r\n"); };
                    if (data[7] == 0x02) { showMsg02(stringdata + "\r\n"); };
                    if (data[7] == 0x03) { showMsg03(stringdata + "\r\n"); };
                    if (data[7] == 0x05) { showMsg05(stringdata + "\r\n"); };
                    if (data[7] == 0x06) { showMsg06(stringdata + "\r\n"); };
                    if (data[7] == 0x0F) { showMsg0F(stringdata + "\r\n"); };
                    if (data[7] == 0x10) { showMsg10(stringdata + "\r\n"); };
                }
            }

            private void send01_Click(object sender, EventArgs e)
            {
                //0x00 0x14 起始地址
                //0x00 0x13 输出数量
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x01, 0x00, 0x14, 0x00, 0x13 };
                newclient.Send(data);
            }

            private void send01_21_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x01, 0x00, 0x15, 0x00, 0x13 };
                newclient.Send(data);
            }

            private void send01_4151_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x01, 0x10, 0x37, 0x00, 0x13 };
                newclient.Send(data);
            }

            public void showMsg01(string msg)
            {

                //在线程里以安全方式调用控件
                if (receive0x01.InvokeRequired)
                {
                    MyInvoke _myinvoke = new MyInvoke(showMsg01);
                    receive0x01.Invoke(_myinvoke, new object[] { msg });
                }
                else
                {
                    //接收数据格式
                    //0x03      字节数
                    //0x??      接收状态(按位读取)
                    receive0x01.AppendText(msg);
                }

            }

            private void send02_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x00, 0xC5, 0x00, 0x16 };
                newclient.Send(data);
            }

            private void send02_21_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x00, 0x15, 0x00, 0x16 };
                newclient.Send(data);

            }

            private void send02_4151_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x02, 0x10, 0x37, 0x00, 0x16 };
                newclient.Send(data);

            }

            public void showMsg02(string msg)
            {

                //在线程里以安全方式调用控件
                if (receive0x01.InvokeRequired)
                {
                    MyInvoke _myinvoke = new MyInvoke(showMsg02);
                    receive0x02.Invoke(_myinvoke, new object[] { msg });
                }
                else
                {
                    receive0x02.AppendText(msg);
                }

            }

            private void send03_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x6C, 0x00, 0x03 };
                newclient.Send(data);
            }

            private void send03_21_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x15, 0x00, 0x03 };
                newclient.Send(data);
            }

            private void send03_4151_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x10, 0x37, 0x00, 0x03 };
                newclient.Send(data);

            }

            public void showMsg03(string msg)
            {

                //在线程里以安全方式调用控件
                if (receive0x01.InvokeRequired)
                {
                    MyInvoke _myinvoke = new MyInvoke(showMsg03);
                    receive0x03.Invoke(_myinvoke, new object[] { msg });
                }
                else
                {
                    receive0x03.AppendText(msg);
                }

            }

            private void send05_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x05, 0x00, 0xAD, 0xFF, 0x00 };
                newclient.Send(data);
            }

            public void showMsg05(string msg)
            {

                //在线程里以安全方式调用控件
                if (receive0x05.InvokeRequired)
                {
                    MyInvoke _myinvoke = new MyInvoke(showMsg05);
                    receive0x05.Invoke(_myinvoke, new object[] { msg });
                }
                else
                {
                    receive0x05.AppendText(msg);
                }

            }

            private void send06_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x06, 0x00, 0x01, 0x00, 0x03 };
                newclient.Send(data);
            }

            public void showMsg06(string msg)
            {

                //在线程里以安全方式调用控件
                if (receive0x06.InvokeRequired)
                {
                    MyInvoke _myinvoke = new MyInvoke(showMsg06);
                    receive0x06.Invoke(_myinvoke, new object[] { msg });
                }
                else
                {
                    receive0x06.AppendText(msg);
                }

            }

            private void send0F_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x01, 0x0F, 0x00, 0x14, 0x00, 0x0A, 0x02, 0xCD, 0x01 };
                newclient.Send(data);
            }

            public void showMsg0F(string msg)
            {

                //在线程里以安全方式调用控件
                if (receive0x0F.InvokeRequired)
                {
                    MyInvoke _myinvoke = new MyInvoke(showMsg0F);
                    receive0x0F.Invoke(_myinvoke, new object[] { msg });
                }
                else
                {
                    receive0x0F.AppendText(msg);
                }

            }

            private void send10_Click(object sender, EventArgs e)
            {
                byte[] data = new byte[] { 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x01, 0x10, 0x00, 0x02, 0x00, 0x02, 0x04, 0x00,0x0A,0x01, 0x02 };
                newclient.Send(data);
            }

            public void showMsg10(string msg)
            {

                //在线程里以安全方式调用控件
                if (receive0x10.InvokeRequired)
                {
                    MyInvoke _myinvoke = new MyInvoke(showMsg10);
                    receive0x10.Invoke(_myinvoke, new object[] { msg });
                }
                else
                {
                    receive0x10.AppendText(msg);
                }

            }

            private void Form1_Load(object sender, EventArgs e)
            {
                RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\ModbusTcpClient", false);
                if (key == null)
                {
                    key = Registry.CurrentUser.CreateSubKey("Software\\ModbusTcpClient");
                }
                if (key != null)
                {
                    string strKeyValue;
                    strKeyValue = key.GetValue("Server", "192.168.1.10").ToString();
                    if (strKeyValue.Length > 0)
                    {
                        serverIP.Text = strKeyValue;
                    }

                    strKeyValue = key.GetValue("Port", "502").ToString();
                    if (strKeyValue.Length > 0)
                    {
                        serverPort.Text = strKeyValue;
                    }

                    key.Close();
                }
            }

            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\ModbusTcpClient", true);
                if (key != null)
                {
                    string strKeyValue = serverIP.Text.Trim();
                    key.SetValue("Server", strKeyValue);

                    strKeyValue = serverPort.Text.Trim();
                    key.SetValue("Port", strKeyValue);

                    key.Close();
                }
            }
        }
    }

    展开全文
  • 前言本节,我们开始学习连接Tlink平台,通过TCP协议将数据传输到Tlink平台,同时通过Tlink平台下发命令远程控制设备,本节目表示通过网络助手和TLink平台进行数据调试。一、基础知识1.Tlink平台简介Tlink物联网平台...

    96a5b9593c4fea2126fb448765df71f1.png

    前言

    本节,我们开始学习连接Tlink平台,通过TCP协议将数据传输到Tlink平台,同时通过Tlink平台下发命令远程控制设备,本节目表示通过网络助手和TLink平台进行数据调试。

    一、基础知识

    1.Tlink平台简介

    Tlink物联网平台是一个免费开放的设备连接平台,主要应用在工业领域,接入传感器种类广泛,基本包含了工业应用的所有场景,Tlink是一款链接平台,实现了百万级节点实时连接,集成了TCP、HTTP、MB RTU、MB TCP、MQTT、UDP、TP500、NB-IOT、CoAP等物联网协议。

    二、云端创建设备

    Tlink地址:https://www.tlink.io/ ,注册后进入控制台。

    1.添加设备

    点击添加设备

    45e2bb4741b881a96973306d78c2bcc2.png

    输入设备名称,并选择连接协议为TCP

    27cb251b79d8b503cee3cd0707891e5d.png

    点击追加,创建传感器,我这里选择DHT11温湿度传感器和一个开关

    8a9a3f8c3422571fc28100c5f39b5c74.png

    信息填写完成后,点击下方创建设备按钮

    4efe2fdce5a407534cff29bdb98c4766.png

    2.修改协议

    点击设置连接,进入设备连接信息配置页面

    da70f37501279917b809b23abd21cce4.png

    自定义协议类型,选择如下数据传输协议

    f08783702f4b106a4b509f6cf040c5eb.png

    三、网络助手连接

    1.通信流程

    首先连接http://tcp.tlink.io:8647,然后发送设备序列号给平台,如果平台不断开连接,或者返回错误信息,那么鉴权成功,接着定期发送心跳数据("Q")给平台,平台回复A说明心跳正常。

    2.获取设备序列号

    device1的设备序列号为:UVKY765HR848JGNM

    a29b2b9a46574390104d522896a8f65d.png

    3.使用网络助手调试

    (1) 打开网络助手

    3025ad7937bee5404b0993d10d878c36.png

    (2) 获取http://tcp.tlink.io的IP地址

    在CMD控制台输入ping http://tcp.tlink.io

    7e77f3132c5d54c6908fb5f9b2dea073.png

    可知IP地址为112.74.142.132。

    (3) 连接tlink平台

    828865aec4fa53fecc93c92ffd063d75.png

    (4) 发送序列号给Tlink

    3dba59b50e5104793202058746ef5159.png

    (5) 发送数据

    da38edb9aa4133b6ccd40abd56ef6d9f.png

    查看后台数据

    b07d5922d8524d48d6c3c39c3c57d696.png

    (6) 维持心跳

    维持心跳,只需要每隔30秒发送Q给平台,平台会返回A。

    9185e23564f7f4bce23404f53427893d.png

    (7) 接收数据

    点击设置设备连接,打开编辑协议页面

    7cec302085a6d3a79af372184b5708a5.png

    右下角窗口可进行数据调试

    7b693ca1d78c99f8861e749fd9132ad0.png

    点击右下角图标,然后点击下发命令

    0cf8b747b67f81ff5ee5586874665acd.png

    网络助手信息如下:

    3fdf08a16d2ffce7f863eea228caf53d.png

    网络助手收到了平台下发的#24,0#数据。

    四、结语

    (1)获取资料

    关注公号,回复wemos即可。

    一叶孤沙出品:一沙一世界,一叶一菩提

    展开全文
  • 一、串口调试功能:我们以条码枪为例来演示PLC调试神器的串口调试接收功能。首先将条码枪通过232转USB的方式接到电脑上,如图所示:查看设备管理器“端口”,在调试神器串口调试界面选择COM5,通讯参数9600,8,N,1...
    49a6c3384ae58a33d233c0bc4561eb21.png

    一、串口调试功能:

    我们以条码枪为例来演示PLC调试神器的串口调试接收功能。首先将条码枪通过232转USB的方式接到电脑上,如图所示:

    1c14652732075ef749b8a0fe903372fe.png

    查看设备管理器“端口”,在调试神器串口调试界面选择COM5,通讯参数9600,8,N,1。与条码枪设置一致,然后打开串口。

    39b35b51dbd9045844b29fe93ce6ae0d.png
    ddfb0e5dbbafdaa613db1b2c3583d06c.png

    使用条码枪扫描条码,可以看到扫描的数据显示在调试神器的接收区当中。

    fdb135f709a815175b06a286bf4f7cd5.png
    ffa579d617f0621475b476a71a53cbcd.png

    下面我们用三菱FX3U PLC的232BD来演示串口调试界面的发送功能。连接如下:

    b14948a1da95196a6ff5e6e0b8ccbce2.png

    编写通讯程序:

    9483934f0fa3564080fce442936ee517.png

    打开串口,在数据区选择循环发送(每100毫秒发送一次数据)

    a7d6e5c62302ba6acaba860b29017bd4.png

    监视PLC接收到的数据。

    030f470d37e999754e3582d919ac749b.png

    二、网口(TCP/UDP)调试功能:

    我们使用Q26UDV的内置以太网口socket通讯程序来演示神器的网口调试功能。硬件连接如下所示:

    7399b4a56f43bfee33df71a93c99c6cd.png

    通讯设置(选择1号通讯,通讯方式为Socket,TCP连接方式为主动Active;本机IP地址:192.168.1.12,端口号4098;对方IP地址:192.168.1.4,端口号4097):

    cd37139fbd1dc25c2133785af1d9c59d.png

    通讯程序,包括打开连接、关闭连接、接收数据和发送数据,限于篇幅只截取片段。

    fee92d830f82a83435912bcd0e509f79.png

    调试神器这边,选择TCP协议,选择建立服务器(因为Q系列PLC刚才设置成了active,做客户端来用),IP地址和端口号填写成刚才设置当中的IP地址和端口号(和电脑IP地址要一致),就可以测试TCP协议的发送和接收了:

    e8fc9a32b0d68e668c54b95ac6b0edf3.png

    三、Modbus-RTU调试功能:

    PLC调试神器的Modbus-RTU调试相比传统的Modbus调试工具来说,更加形象直观。不仅包括了报文上的CRC校验计算,更按照功能码的不同将线圈和寄存器的输入输出状态以图表的形式显示在了界面上。除此之外,还支持Modbus从站调试功能。下面我们以两台电脑之间互为Modbus主从站调试功能为例,来详细说明PLC调试神器的Modbus调试方法。

    55dc43886506c90d266c0d1b109847e4.png

    首先我们来配置从站电脑上的调试神器。在界面当中选择“从站”,然后创造一批从站寄存器地址(以寄存器0000-0008,共9个寄存器为例),并填入寄存器当中的数值(地址0000数值为H0012,地址0001数值为H0034,地址0002数值为H0056,地址0003数值为H0078),如图所示:

    f790da8e9aa88fec3a5800f6890f22fa.png

    然后我们配置主站电脑上的调试神器。设定功能码为03(读寄存器),读从站的地址是0000-0003共4个。可以看到下方发送区自动生成了Modbus格式的报文,包含CRC校验。

    549f61d50b13bdeb3eb40e17c7444481.png

    然后点击连续发送,可以看到从站当中的寄存器当中数据被刷新到显示区。

    32248efe63a6324b00f478ee8f4caf22.png

    关于读写线圈,操作也是一样的。

    从站状态:

    08c86091479c583232c1692ac64de320.png

    主站读取到从站的状态:

    c6e8e70e943ee9e9f2eec435a3c8d54d.png

    四、Modbus-TCP调试功能:

    通过前面对Modbus-RTU和TCP/IP调试的介绍,相信大家对于Modbus-TCP的调试方法也大体有所了解了。

    简而言之,如果连接服务器,PLC调试神器就是作为主动方;如果创建服务器,PLC调试神器就是作为接收方,我们先将网络配置好(操作同TCP调试一样),然后设置Modbus的读写地址,就可以和Modbus-RTU的调试界面一样,进行数据的读写监视了。

    从站(服务器)配置:

    5e9e5fc6b78f9a3cddc819619f4dc1ab.png

    创建服务器,写入从站线圈状态:

    5f75ab336d7e8ed48807744eda9ddc38.png

    主站读取操作:

    57715e40ecea48242914ceff548b4490.png

    我们在工程项目调试通讯的时候,如果遇到通讯不上的问题,建议先使用PLC调试神器,分别对PLC、仪表以及从站来进行监控或者发送调试。依靠控制变量的方法,按次序排查PLC的数据、仪表返回的数据以及线路通畅与否。将可能的故障点排除掉之后,剩下的就是真正的故障原因了。

    PLC调试神器 就是让电脑成为一个通讯的站,这个站可以是串口,可以是网口,可以是Modbus主站,也可以是Modbus从站。通过在电脑当中对抽象通讯数据的形象显示,能够使我们更方便地查找到问题,提高工作效率。未来的PLC调试神器还将升级进去CC-Link、CC-Link IE、EtherCAT、Profinet等常用品牌现场总线,更好的造福自动化行业。

    下面我们来了解PLC调试神器的一些附加功能,大家在做项目的时候有时候会用到,非常方便。

    1.虚拟串口工具:

    通过虚拟串口工具,我们可以在一台电脑上虚拟出多对串口来,两两为一组。这样方便在一台电脑当中进行串口数据以及Modbus的调试监控,无需硬件。对于通讯的初学者来说是极好的练习方式。如图所示:

    在虚拟串口工具当中虚拟两对串口,COM1对应COM2:

    3907d188fddd3270ff7fdf1cac2a5a98.png

    然后打开两个串口调试界面,一个选择COM1,另一个选择COM2,分别打开串口。我们就可以在两个串口调试界面之间互相收发数据了。

    COM1发送数据:

    72ec43f19966644e3c5f84434f5d3afb.png

    COM2接收数据:

    d5e7350eb8d34b6a1b9b2656c4293ec9.png

    对于Modbus-RTU,也可以这样来操作,你还怕学不会Modbus吗?

    虚拟主站:

    f659734935ef70ca8867d2efcdf02d0e.png

    虚拟从站:

    2c7a82037683f63f3398d486cafe257c.png

    2.ASCII码转换工具:

    以往我们在编程或者调试ASCII码格式通讯的时候,需要查找ASCII码对应表。有了PLC调试神器,我们可以直接通过转换的方式,方便快捷的得出数据的ASCII码表示,如图所示:

    3c75978d51113f1388e6a47be3cd062b.png

    汉字也是支持的:

    2478fdaf95164dcadce215361368d709.png

    也可以通过查表的方式找到字符对应的ASCII码:

    f8555337f7df7f8e3ec031efdb01a4fa.png

    3.伺服步进的齿轮比计算:

    ffa1eed984d37cff0f35fedc1c48b959.png

    除了通讯调试,PLC调试神器的另外一大亮点是伺服/步进等运动控制的计算功能。我们无需通过公式进行计算,就能快速的根据机械结构和编码器分辨率等参数求出电子齿轮比或者步进细分。是不是很强大呢?

    f85e9c5351495c781fda40382d41cd74.png

    步进电机细分计算:

    b8691c7a30a179f0471e015bd353f6ae.png

    脉冲毫米转换、频率与速度转换:

    9eab6a4d5725b2c0dd571b0d4f63dd75.png

    4.进制转换、位组合字、模拟量比例转换:

    c735342d4b3821090b9c546aed31980a.png

    很多初学者对于位、字节、单字、双字的概念不好理解,因为这个概念比较抽象。PLC调试神器当中包含了进制、位字组合等的转换工具,帮助你更好掌握数据概念!

    进制转换器:

    464eea27b94e79b341299a7c6bd971ae.png

    二进制位组合:

    e0f7f88db6ae0346fcd859333e1f1d2c.png

    位和字的关系,搞不清K4M0、K8Y20的概念?调试神器帮您!

    36f5eb0f4a37771fa9207f393c22a810.png

    模拟量比例转换器:

    ef4dfea0411cfe9301214a38fb323511.png

    工程师们接项目赚外快,不知道如何报价?工程报价器帮您!

    计算报价仅供参考,大家报价的时候根据实际情况来确定哟~

    6419f118165b95f1d684ee02929c8616.png

    升级一:新增串口调试起止符CR/LF功能

    66c88234fc380bd06e3045ae5f2baa64.png

    升级二:Modbus调试窗口背景微调

    bacb8bb7d238241fff6788ce38de353d.png

    升级三:修复了Modbus/TCP调试当中的部分bug

    56841a7c7f28be8d8622db0e115fe32f.png

    升级四:新增IEC浮点数转化功能

    56d83dcd793962c1ff36c9fd95c0509d.png

      好了,关于八方汇PLC调试软件的使用方法和功能介绍就到这里~

    重要的事情说三遍:这款神奇的软件完全免费!完全免费!完全免费!

    有需要的小伙伴们可以直私信发接链接下载!

    展开全文
  • MODBUS TCP Slave调试工具

    2021-06-18 15:35:59
    MODBUS TCP Slave调试工具
  • 一个VB写的modbus tcp调试软件(源码),功能包括,写入excel,写入mysql,SOE和曲线图等。。。
  • Modbus Tcp Client的数据传输协调调试用例代码,C# Form代码。
  • ModbusTcp.rar

    2021-02-02 11:59:53
    modbusTCP调试工具
  • MODBUS TCP通讯调试软件

    2018-01-11 16:48:22
    TCP服务器通讯测试工具服务端和客户端。可选择本机IP地址和远程IP地址及端口,支持自动连接,自动发送数据。本工具可以运行在WINXP/7/CE系统下,如果无法运行,是因为你的电脑没有安装.NET2.0及以上环境。 支持多...
  • 调试助手modbus tcp

    热门讨论 2013-04-24 18:18:03
    适合工程modbus tcp 测试时使用
  • 机器人,埃斯顿机器人ModbusTCP通信编程
  • MODBUS TCP/RTU调试工具,附主子站模拟器。两个工具其中一个modscan,另外一个是modbus rtu/tcp 主子站模拟器,开发必备。
  • MODBUSTCP调试软件

    2021-02-01 15:29:20
    友善调试串口,modbus poll ,modbus slave,CRC计算工具,tcp IP 调试助手,NetAssist助手,串口助手,
  • 网上找了很多modbus tcp 服务端的调试助手,感觉这个用起来还算不错,这个是64位操作系统的,从站端。
  • \内建MODBUS网关功能的串口服务器及MODBUS TCP RTU ASCII调试工具
  • Modbus TCP Server Tester

    2018-12-20 09:26:18
    标准Modbus TCP通信测试工具,两个测试工具主要用于plcModbus TCP通信测试,可分别可是客户端和服务器端 测试环境
  • VB编写的MODBUSTCP调试工具,命令用ASCII码,可自动删除空格并转HEX发出。
  • 标准Modbus TCP通信测试工具,两个测试工具主要用于plcModbus TCP通信测试,可分别可是客户端和服务器端 测试环境:西门子SMART s7-200 PLC
  • modbus协议调试工具 支持TCP和串口 modbus协议调试工具。中文版,支持寄存器可配置,方便快速便捷 使用人员超速了解modbus协议
  • Modbus TCP Tool

    热门讨论 2011-12-11 09:34:35
    ModBus TCP tool ,方便调试Modbus通信,可以使用客户端配置数据。可以模拟服务器和客户端。开发服务器和客户端,不需要两个同时开发,只开发自己需要的。
  • ModbusTCP_Master V2.1.rar

    2020-07-21 22:05:48
    以太网调试助手,很好用的以太网调试工具。modbus tcp主机模式调试助手,在没有实物板的时候可以使用软件验证功能性,物联网调试工具。
  • ModbusTCP测试工具

    2019-01-15 09:24:16
    好用的ModbusTCP服务器端和客户端测试工具,亲测可用,稳定
  • 主要介绍了基于Python的ModbusTCP客户端实现详解,Modbus Poll和Modbus Slave是两款非常流行的Modbus设备仿真软件,支持Modbus RTU/ASCII和Modbus TCP/IP协议 ,经常用于测试和调试Modbus设备,观察Modbus通信过程中...
  • PLC调试助手,modbus tcp/ip 16进制通信,支持数据解析,多种格式数据转换
  • ModbusTcp客户端工具

    2020-04-05 11:55:16
    程序使用了NModbus4框架实现基于以太网TCP/IP的Modbus协议,能读写线圈、读写保持寄存器、读离散输入量和输入寄存器。
  • 因在工作中遇到以前的代码读取聚英PLC设备开关状态失败问题,所以就好好研究了一下ModBus协议,其中Modbus Poll发挥了重要作用,在此记录一下...施耐德、聚英且支持ModBus TCP/IP协议 功能使用方式 连接 点击【Conn

    因在工作中遇到以前的代码读取聚英PLC设备开关状态失败问题,所以就好好研究了一下ModBus协议,其中Modbus Poll发挥了重要作用,在此记录一下Modbus Poll的使用方式

    测试说明

    软件版本

    在这里插入图片描述

    设备信息

    施耐德、聚英且支持ModBus TCP/IP协议

    功能使用方式

    连接

    1. 点击【Connection】菜单,在弹出框中选择【Connect…】

    2. 选择连接类型【TCP/IP】

    3. 输入设备IP,端口

    4. 点击ok
      在这里插入图片描述

    5. 没有警告提示,连接成功

    在这里插入图片描述

    操作设备

    准备工作

    1. 显示通信信息
      在这里插入图片描述

    2. 点击【SetUp】,选择【Read/Write Deinition…】进入读写功能页面
      在这里插入图片描述

    3.准备工作完成
    在这里插入图片描述

    读取Coils状态

    1. 在读写功能区中,Function选择【01 ReadCoils】
    2. Address输入Coils起始地址(聚英从0开始,施耐德从600开始,不对的话可以问设备厂商)
    3. Quantity输入Coils个数(不确定写1)
    4. 点击【Read/Write Once】
    5. 可以在【通讯信息】中看到发给PLC的指令,及PLC的响应;在【结果展示】中显示状态
      在这里插入图片描述

    写Coils状态

    1. 在读写功能区中,Function选择【05 Write Single Coil】
    2. Address输入Coils起始地址(聚英从0开始,施耐德从600开始,不对的话可以问设备厂商)
    3. Quantity输入个数1
    4. 点击【Read/Write Once】
    5. 可以在【通讯信息】中看到发给PLC的指令,及PLC的响应;在【结果展示】中显示状态
      注意:该功能只能关闭,不能打开,下面会介绍打开关闭方式
      在这里插入图片描述

    写Coils状态之打开关闭

    1. 点击【Functions】,选择【05:Write Single Coil…】进入写单个Coil功能页面
    2. Address输入Coils起始地址(聚英从0开始,施耐德从600开始,不对的话可以问设备厂商)
    3. Value选择On(打开)/Off(关闭)
    4. 点击【send】
    5. 可以在【通讯信息】中看到发给PLC的指令
      在这里插入图片描述

    读取Holding Registers状态(施耐德PLC的IN口读取方式)

    1. 在读写功能区中,Function选择【03 Read Holding Registers】
    2. Address输入Holding Registers起始地址(聚英从0开始,施耐德从0开始,不对的话可以问设备厂商)
    3. Quantity输入Holding Registers个数(不确定写1)
    4. 点击【Read/Write Once】
    5. 可以在【通讯信息】中看到发给PLC的指令,及PLC的响应;在【结果展示】中显示状态
      在这里插入图片描述

    读取Discrete Inputs状态(聚英PLC的IN口读取方式)

    1. 在读写功能区中,Function选择【02 Read Discrete Inputs】
    2. Address输入Discrete Inputs起始地址(聚英从0开始,施耐德从0开始,不对的话可以问设备厂商)
    3. Quantity输入Discrete Inputs个数(不确定写1)
    4. 点击【Read/Write Once】
    5. 可以在【通讯信息】中看到发给PLC的指令,及PLC的响应;在【结果展示】中显示状态
      在这里插入图片描述

    额外说明

    选中【 Read/Write Enabled】点击【Apply】后,会自动持续执行指令
    在这里插入图片描述

    总结

    因工作需要只测试了读取Coils,读取Discrete Inputs,读取Holding Registers,写单个Coil功能,其他功能未测试,如需其他功能可以参考上面的操作,自行摸索

    ModBus TCP/IP协议参考:https://blog.csdn.net/dhbfjh/article/details/119005572

    展开全文
  • Modbus TCP 示例报文

    千次阅读 2018-05-24 09:28:00
    MODBUSTCP通讯报文》 Client request: 19 B2 00 00 00 06 06 03 00 27 00 02 上面是modbus客户端发出的报文内容,为modbus tcp/ip协议格式,其前面的六个字节为头字节( header handle); 19 B2 0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,470
精华内容 588
关键字:

modbustcp调试