PMAC与Modbus主站进行Modbus Tcp通讯

这篇具有很好参考价值的文章主要介绍了PMAC与Modbus主站进行Modbus Tcp通讯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PMAC与Modbus主站进行Modbus Tcp通讯

创建modbus通讯参数

在项目的PMAC Script Language\Global Includes下创建一个名为00_Modbus_Para.pmh的pmh文件。

Modbus[0].Config.ServerPort = 0 
Modbus[0].Config.ConnectTimeOut = 6000
Modbus[0].Config.SendRecvTimeOut = 0 
										
Modbus[0].Config.ServerIpAddr[0]=127
Modbus[0].Config.ServerIpAddr[1]=0
Modbus[0].Config.ServerIpAddr[2]=0
Modbus[0].Config.ServerIpAddr[3]=1

Sys.ModbusServerEnable = 1;

具体的参数查看手册,样例使用的是本机的回环地址。

创建modbus 后台C程序

在C Language\Background Programs下添加一个后台C应用程序,名为capp1。在capp1文件夹下创建一个capp1.c的source文件。

int main(void)
{	
	struct timespec sleeptime = {0};
	sleeptime.tv_nsec = NANO_10MSEC;	// #defines NANO_5MSEC & NANO_10MSEC are available
	
	InitLibrary();  // Required for accessing Power PMAC library

	//modbus client 使用socket0 连接到 Server
	ModbusConnect(0);

	//自定义读写 float数据
	float wdata[5] = {0,0,0,0,0};3
	float rdata[5] = {0,0,0,0,0};
	
	//开始连续执行,若要退出 p110=0
	pshm->P[110] = 1;

	while(pshm->P[110])
	{
		//P变量赋值到要写入的变量
		wdata[0] = (float)pshm->P[0];
		wdata[1] = (float)pshm->P[1];
		wdata[2] = (float)pshm->P[2];
		wdata[3] = (float)pshm->P[3];
		wdata[4] = (float)pshm->P[4];
		//modbus float write
		ModbusFloatWrite(0,0,5,wdata);
		//modbus float read
		ModbusFloatRead(0,0,5,rdata);
		//读取的变量赋值到P变量
		pshm->P[100] = rdata[0];
		pshm->P[101] = rdata[1];
		pshm->P[102] = rdata[2];
		pshm->P[103] = rdata[3];
		pshm->P[104] = rdata[4];
		
		//执行一次sleep 10ms
		nanosleep(&sleeptime,NULL);
		
	}
	//断开modbus 连接				
	ModbusClose(0);
	CloseLibrary();
	return 0;
}

创建启动程序

在PMAC Script Language\PLC Programs文件夹下创建一个plc1.plc程序。

//延时启动c app
call Timer.msec(500)

system "/var/ftp/usrflash/Project/C\ Language/Background\ Programs/capp1.out"


disable plc 1

运行

右击项目选择构建并下载项目,下载完成后终端发送save保存到控制器。
在Watch界面上查看sys.ModbusServerThreads值是否是1。
添加监控数据p0,5和p100,5
PMAC与Modbus主站进行Modbus Tcp通讯,omron-pmac(ck3m)运动控制器应用,tcp/ip

在终端输入enable plc 1,启动plc程序。
在终端输入p0=1,2,3,4,5
PMAC与Modbus主站进行Modbus Tcp通讯,omron-pmac(ck3m)运动控制器应用,tcp/ip
在终端中输入p110=0退出连续执行
在终端中输入p0=0,p100的值并不会变化,并且sys.ModbusServerThreads变成了0.
PMAC与Modbus主站进行Modbus Tcp通讯,omron-pmac(ck3m)运动控制器应用,tcp/ip
终端再启用plc1程序后
PMAC与Modbus主站进行Modbus Tcp通讯,omron-pmac(ck3m)运动控制器应用,tcp/ip
watch界面数据更新,p100值为0。文章来源地址https://www.toymoban.com/news/detail-679207.html

到了这里,关于PMAC与Modbus主站进行Modbus Tcp通讯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)

    本篇将会以西门子PLC软件搭建ModbusTCP仿真环境,并通过仿真环境,介绍基础知识及模拟实际应用中写一个简单的通信读取PLC数据方法,并简介了编写上位机的方法。 由于具有TCP/IP栈协议,通常在Modbus TCP通讯的上位机开发中, 上位机是作为客户端,控制器作为服务器 。Modbu

    2024年02月08日
    浏览(179)
  • JAVA modbus4j 实现modbus tcp通讯

    1.maven依赖 2.在modbus进行读写之前,需要先建立连接,例如:建立modbus tcp通讯  3.modbus4j 读工具类 4. modbus4j 写工具类

    2024年02月16日
    浏览(51)
  • 海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互

    使用 Modbus TCP 通讯协议与视觉通讯,当地址为 0000 的保持型寄存器(4x 寄存器)变为 1 时,触发视觉流程执行一次,同时视觉将地址为 0000 的寄存器复位(也即写为 0),视觉流程执行完成后,将结果数据:特征匹配状态、特征匹配点 X、特征匹配点Y、特征角度分别写入到地址为

    2024年02月04日
    浏览(374)
  • python 与PLC 基于 modbus tcp 协议通讯

    Modbus是一种串行通信协议,是工业领域通信协议的业界标准,是工业电子设备之间常用的连接方式。最近在工作中需要上位机python程序和PLC做通讯,就测试了下使用modbus tcp 通讯。         目前实际测试结果是与西门子PLC/信捷PLC都可以正常通讯使用,但是看到网上说可以传输

    2024年02月17日
    浏览(45)
  • Java与Modbus-TCP/IP网络通讯

    通过Java与Modbus-TCP/IP网络通讯实现举例5中的功能

    2024年02月10日
    浏览(50)
  • 实现S7-200smart通过MODBUS TCP/IP与matlab通讯

    目录 S7-200smart通过MODBUS TCP/IP与matlab通讯 两台PLC之间建立Modbus TPC/IP通讯 MODBUS TCP Client梯形图各个参数的功能: MODBUS TCP Server梯形图各个参数的功能: 两台S7-200smart之间通过Modbus TCP连接: MATLAB端建立Modbus TCP客户端: 通过函数建立Modbus TCP客户端 通过Matlab-Industment Control工具箱进

    2024年02月03日
    浏览(93)
  • CCLINK转MODBUS-TCP网关cclink通讯接线图 终端电阻

    大家好,今天我们要聊的是生产管理系统中的CCLINK和MODBUS-TCP协议,它们的不同使得数据互通比较困难,但捷米JM-CCLK-TCP网关的出现改变了这一切。 1捷米JM-CCLK-TCP是一款自主研发的CCLINK从站功能的通讯网关,它的主要功能是将各种MODBUS-TCP设备接入到CCLINK总线中。网关连接到C

    2024年02月13日
    浏览(44)
  • 【2023】java通过modbus4j实现modus TCP通讯

    主要分为三个子协议 RTU ASCII TCP Modbus RTU:——传输的是字节数组(bit[]) 通信:读写 输出:可以读写 输入:只能读 存储区:输出线圈、输入线圈、输出寄存器、输入寄存器 线圈:代表一个布尔量、最小单位是一个布尔(1或者0), 寄存器:一个寄存器代表16个最小单位,主

    2024年02月12日
    浏览(43)
  • MODBUS TCP转CCLINK IE协议网关cclink通讯异常的处理方法

    你是否曾经遇到过需要将不同的设备连接到一个统一的网络中?或者你是否曾经遇到过设备之间的通讯协议不兼容的问题?捷米的JM-CCLKIE-TCP通讯网关就是为解决这些问题而设计的。   JM-CCLKIE-TCP通讯网关是一款自主研发的CCLINK IE FIELD BASIC从站功能的通讯网关,它的主要功能是

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包