关于台达plc的modbus主站和从站如何编写程序
最近在工作中遇到了台达的plc,本来我只要读取它们的数据罢了,台达plc作为modbus从站。我作为modbus主站去读取modbus从站的数据,应该是一件很容易的事。但是,很不幸的是,设备厂家对通讯方面完全不了解。当我向他索要modbus地址和通讯参数的时候,他萌萌的告诉我他对这方面不是很清楚,当时我心里凉了半截,心里默默问候我们公司的售前人员。没办法了,工作还得继续下去(甲方爸爸催的紧啊),把他们的设备拆开看了下,得到一些信息:他们设备的控制器台达的plc,柜子外配了一个网口,这个网口是用plc的485端口转换的。
现在有几个问题:
1,我以前没接触过台达plc
2,也没接触过那个485转以太网的模块
怎么办呢,赶紧去了解一波呗。
台达plc肯定支持modbus通讯,毕竟搞西门子plc好多年,学一下怎么用modbus应该很快。
对485转以太网模块虽然不熟悉,但是以前用过232转以太网模块,想了下用法上应该差不多,了解一下应该也快。
根据485转以太网模块的品牌,自己找到了技术支持电话,在咨询之后要了他们的软件,功能果然和moxa的232转以太网功能一样,只是品牌不一样而已。心里也有底了。
然后花了一些时间了解台达的modbus编程,下面我就来说说关于台达plc的modbus编程的有关内容。
接触过plc的都知道,中国市场的plc分两派:欧美系和日系。他们两种编程的风格不太一样,在这里就不细说了。台达plc属于是仿日本三菱plc的,所以属于典型的日系plc。本人以前一直用的是西门子plc,西门子plc的modbus主站从站都需要调用西门子的库程序实现,所以以为台达plc也是需要这种类似操作,当知道现场设备的厂家根本没有考虑modbus从站的时候我的心拔凉拔凉的。但是,天无绝人之路,当我了解了一点台达plc后忽然发现,台达plc默认就支持modbus从站。
台达的plc的内部地址和modbus地址有一个对应关系,对应关系如下图
对应关系的全部内容,你们可以自己在台达plc的应用手册上查看。
现在对应关系是有了,那么modbus的通讯参数和站号地址在哪里设置呢?下面就来阐述,我们需要主站和从站分开阐述。
我们先说台达plc作为modbus从站,该如何设置。
台达plc不做任何设置,也是一个modbus从站,因为台达plc的通讯参数和站号地址是通过一些特定的寄存器地址设置的,而那些特殊的寄存器地址是有一个默认值的。
设置从站的通讯参数
以上就是modbus从站的参数和站号设置,前面也提到了这些可以不设置,那么就是默认值。我们来看看这些特殊寄存器代表的意义:
D1121:plc站号地址,默认值为1
D1120:com2(rs485通讯协议),默认值是H86,代表的意思是波特率9600,字长度7位,偶校验,1位停止位
M1220:com2通讯设定保持用,如果设定了D1120,m1120就置1使设置保持。
M1143:SLAVE 模式时,COM2(RS-485)之 ASCII/RTU
模式选择 (Off: ASCII模式 ,On: RTU 模式)
MASTER 模式时, COM2(RS-485) 之 ASCII/RTU
模式选择,配合 MODRD /MODWR/MODRW 指令使用(Off: ASCII 模式, On: RTU 模式)
默认值为0.
所以,默认的通讯参数是波特率9600,字长度7位,偶校验,1位停止位,ASCII模式,站号地址为1.
然后我们再讲一下,modbus主站该怎么编程。首先我们需要了解一下需要用到的指令。
modbus ASCII模式的例子
modbus rtu模式的例子
以上是台达plc的modbus读指令,modbus的写指令和读指令差不多,大同小异。
总结一下:台达plc和西门子的区别:西门子plc的modbus功能只需要调用系统的库程序,没有用到特殊寄存器,读取数据的存放位置直接指定普通寄存器即可,通讯参数也是直接把参数输入。而台达plc要实现modbus功能,需要用到系统指定的特殊寄存器,只要按照应用手册的例子编程就好了。
好了,今天就说到这里吧,欢迎大家一起交流。
资深电气工程师实例讲解:PLC手动和自动程序怎么写才好?
很多电气员在刚写程序时总会遇到不知道用什么写法能更好地实现功能的应用,往往就会陷入一个否定与自我否定的死循环。今天我们就从简单的手动和自动程序入手,一起来聊聊如何把手动和自动程序写得更实用?老规矩先说概念和思路,再上实例!
一、手动和自动程序的概念
手动程序通常是单个动作或设备在人为操作后运行,它不受自动程序的控制,优先级别高于自动程序,常用于设备测试、故障检修或带故障生产模式。当然手动程序还是必须受控于重要的极限位置和安全指标,比如限位开关、过流保护和急停开关等。手动程序连锁条件简单,易于工人操作,但效率低,对于流程控制极不方便。
自动程序通常是按照工艺流程要求自动完成系列动作组合,它受控于手动程序的连锁,优先级别低于手动程序,这是设备或生产线运行的主要模式。自动程序除了受控于重要的极限位置和安全指标,还必须要满足工艺流程之间的连锁、互锁、报警和数据处理,还要尽可能考虑到程序跑飞的意外情况。自动程序连锁复杂,程序编写难度大,但效率高,非常适合流程控制。
二、手动和自动程序的编写
首先,手动模式和自动模式的严格互锁。比如整个生产线选择了自动模式运行,那么相应的各设备都需要选择自动模式(当然根据实际需要可以设计部分设备为半自动运行模式)。
其次,自动程序最好都采用独立的子程序完成,输出逻辑先保存于中间继电器即可。
最后,手动和自动的逻辑输出只到最终执行程序段,比如某台变频的启动信号和速度设定作为接口信号进入输出执行程序段。
这样的编程模式把选择模式、逻辑控制和执行输出严格分开,只需把编程的重心放在逻辑控制上,思路清晰、逻辑分明,可以大大提高程序的质量。
三、手动和自动程序的实例
该实例摘自非标系统的自动控制系统。我们以一个上料系统的升降平台控制为例来说明,编程思路为模式选择(FC10)、逻辑控制(FC20)和输出执行(FC21),其中FC10和FC21都很简单,编程重点专注于FC20即可,不管逻辑控制有多复杂或改变有多大,我们几乎不用动其它程序,这样做的程序不仅可读性高还方便调试。(实例程序段为部分节选,只是为了更生动形象的说明手动/自动程序的编程思路)
(1)该段位于整个设备的模式控制子程序(FC10),下图为整个系统的手动/自动开关。
(2)该段位于整个设备的模式控制子程序(FC10),下图为整个系统的自动启动状态。
(3)该段位于上料系统的逻辑控制子程序(FC20),图为上料系统的自动继电器。
(4)该段位于上料系统的逻辑控制子程序(FC20),图为升降平台自动启动步序一。
(5)该段位于上料系统的逻辑控制子程序(FC20),图为升降平台自动启动步序二。
(6)该段位于上料系统的逻辑控制子程序(FC20),图为升降平台自动启动步序三。
(7)该段位于上料系统的输出控制子程序(FC21),图为升降平台手动/自动输出。
相关问答
台达PLC一行程序写不下,怎么才能连接一下行写出程序?
说明你的程序有问题,下次编译前打开“视图”--“讯息区”,在屏幕的最下方就有告诉你出错的地方了,如果不行,我这有几个我做的台达PLC程序,你可以参考一下说明...
台达plc读取程序步骤?
读取台达PLC程序的步骤分为以下几个部分:首先,将PLC与电脑进行连接,确保硬件设备连接正常。其次,打开PLC编程软件,创建一个新的项目或打开已有的项目文件...
台达plc编程如何插入一列?
电脑上有个插入件insert,按下就可以了;然后直接输入要插入的;插入后再取消插入,按下insert;只要这行没有满;如果你行满了就要换行了。随着微处理器、计算...
台达plc跟台达plc通讯怎么做?
谢邀,这个问题分几个方向进行问题的解决吧。首先是不涉及到底层语言的,普通的PLC和其他内置好modbus协议的设备,只需要确认好通讯的起始地址和读取个数,很容...
台达plc编程时间继电器怎么编?
台达PLC的T1为100ms时间继电器,59mX60s=3540s=35400ms,所以直接使用是不行的,因为台达PLC中的常数值最大为32767。你可用两个时间继电器实现,即将59分分开两...
台达plc怎么连接电脑谁比较了解_其他问答_系统粉
打开“控件面板”中的“电话/调制解调器选项”,在“调制解调器”选项卡中有一个连接占用着这个串口(COM1),马上删除这个连接,再用“超级...把串口...
plc编程快捷键?
1、F开头的:F1:获取帮助。F2:梯形图进入编辑模式。F3:梯形图进入运行模式。F4:编译程序。F5:常开接点输入。F6:常闭接点输入。F7:线圈输出。F8:...Sh...
台达PLC编程软件里的VFD是编什么的?
台达PLC编程软件里的VFD是编什么的首先我们说下VFD是台达变频器的一个产品系列如VFD-M、VFD-A等等型号,所以在PLC中这个肯定与变频器的控制有关。那么在台达PL...
台达触摸屏编程(plc),谁能帮我,急用!-ZOL问答
百度搜下:PLC家园有用(0)回复413010359把读取的数值MOV到一个D寄存器中,比如把数值MOV到D500里面,然后触摸屏一个数值显示元件读取PLC里面D500的数值。有...
台达PLC如何建立子程序?
主程序放在子程序前面,主程序以FEND结束,FEND之后就可以编写子程序了,如果使用WPLsoft编程,子程序开始给出地址指针就可以了,比如:主程序CALLP1C...主程...