使用教程
-
本链接PDF文档详细介绍伺服电机在表格编程是如何一步一步操作,从开机自检,到逻辑控制,以及其它在实际机械编程时需要用到的功能,基本上可以说是比较完整的一套说明,我是经过多次在外面机械厂出差编程,包括PLC编程,和屏幕编程都可以参考本文PDF,这个文档是应用设计,对现场机械设计所需进行讲解,并不是学习这个【EasyDCS可编程控制系统】这个软件基础功能。 &...
-
用PLC来设计定时开关控制 用PLC来设计定时开关控制,非常详细的使用教程说明,一步一步说明到位,设计一个定时时间控制器,只需要表格选择,不需要梯型图编程,这个需要一个触摸屏来操作,屏的设计暂无说明。 PDF文档下载地址如下:可编程PLC定时开关控制器PDF下载 复杂物联网PLC程序控制:可编程 边缘计算、PLC网络远程控制教程
-
DCS分布式PLC可编程OPC物联网远程监控系统设计 在工业、工控行业中,在分散在不同地区不同空间的设备,需要对远程设备进行集中控制和监控时,远程终端有开关量,模拟量,电流、电压、电量、流量、压力、数量、温湿度环境数据、等各种各样的数据进行监控时,这时就需要一套可以发起多TCP连接数的DCS中控主机,发起连接时是支持Modbus-TCP和Modbus-RTU的,因为市场上通用各...
-
控制器恢复出厂IP地址的操作方法: 控制器在出厂前一般使用IP地址是192.168.1.250进行连接,这个IP地址其实并不是默认IP地址,是我们生产中将所有型号控制器直接修改成这个IP地址,用户使用各种型号时比较容易记住。 那默认IP地址是怎么产生的呢?于J4045型号为例,产品标签上有一个地址A,对应的下方就是一个小帽子,这个短路帽子有插着,和没插两种情况,当控制器上...
-
型号JRD-AD8028,为8通道模拟量AD采集模块,是一款工业极,精度高,温漂小,在正常采集数据时,精度可达小数4位半,或作为小数4位高精度来使用,本控制器可采集0V-10V,0V-5V,4-20mA,-10-10V,8路采集独立,电压与电流通过内部跳线切换,差分模式。 简介和优点: 1:外观与市场上不同厂家常见的模拟量采集模块无特别之处。 优点: 2:采集到电压,或电流,可直接...
-
介绍一:在中控主机扩展红外学习模块时,一般扩展1路红外模块时只是简单的跟扩展继电器开关相同,没有太多的设置,而扩展8通道红外模块,就需要编程设计一下切换功能,对于8个通道进行切换到哪里进行发送一开始中控并不知道,所以统过编程来设计。 介绍二:此教程设在软件计了从第1路到第8路是对于红外通道切换。其中切换通道,并不是控制,只是切换,控制时是从第9路开...
-
本视频只是让大家认识一下编程软件的一些指令的生成。
-
【远程设备多管理控制终端】【L3.51】 ,【L3.56】,【2.1.2】 上图视频设置定时的操作方法 上图视频定时器的读取时间的方法: 上图视频操作定时器时间导出为文件方法,和导入文件写进控制器方法 物理继电器功能是提供DCS中控主机的型号【DCS-SERVER400】调度。
-
【远程设备多管理控制终端】是可以管理多台设备,在管理软件可以直接控制,查看在线状态,修改设置定时时间等操作。一个软件最多可以管理几百上千台控制器,这是根据电脑的配置,一般普通电脑也可以管理200台控制器。管理软件建议可以安装在WIN7系统,和WIN10系统中。 1:电脑管理软件安装后,打开即可,什么都不用动,不用理。这是一套应用软件,操作员使用时就应该...
-
用户第一次使用,与控制器连接时,用电脑的网卡直接网线连到控制器,中间不需要路由器,不需要交换机,直接用网卡的方式连接,连接后再来设置控制器的IP地址等。 可以连接控制器了,并修改了控制器数据,将控制器放到需要安 装的地方,再将电脑的IP地址恢复到原来的方式。
本文介绍中控主机的上位机开发、和发送16进制,读写中控内部的开关量,读写中控内部模拟量的规则。可应用于【中控主机】、【PLC】、【DDC】、【DCS】、【集成系统模组】等各种产品。另外上位机开发过程中,只需要读取开关数据状态,和控制开关和写入一些数值,而内部逻辑功能不需要上位机设计,中控主机内部已集成逻辑,中控DCS自动运行PLC程序,自动调度总线下方的各种开关,各种仪表数值,提供EasyDCS全中文可编程软件,可设计时序,延时,点动,情景,模拟量上下限自动控制等功能,不需要上层复杂的程序设计,比如中控主机自动读取4个点位的的温湿度,达到上下限时自动启/停相对应的开关,而上层软件只需要把上限的值写入中控主机就可以了,完全不需要上层设计逻辑,时序等。
另外开发于普通开关量控制器时,也可以对十六进制控制的深入探讨。
以下为TCP数据报文结构:
注:功能码05、01、03、06、16等都是用十进制来跟网友表达,在发送过程中,需要将这些功能码转为十六进制来发送,给控制器识别。
解:图中起始位有6个,其中N也是一个位,N用来表示后面将要发送多少个字节,我们可以算一算后面有多少个字节(设备号+1、功能码+1、起始地址+2、开关状态+1、数量+1)共6个字节,所以N应填写十六进制06,再加前面5组00就一共6组了(00 00 00 00 00 06),所以起始位这里已经完全了解。另外在6个头字节中,第1和第2字节,如果要有所表示,可以自行增加一些数据标志位过去,比如增加时间数据,23分52秒(17 34 )也可以,每次发送过去加了一个变化时间,返回的数据与发送的是一样的(17 34 00 00 00 06),这样可以区别每次发送的数据都不相同,给开发者上位机自行校验的一种方法,但这两个字节控制器收到后,不会做什么什么反应。
请求方式:00 00 00 00 00 06 01 05 02 00 FF 00
响应方式:00 00 00 00 00 06 01 05 02 00 FF 00
00 00 传输标志,两个字节长度,填什么都可以,默认是00 00;
00 00协议标识,两个字节长度,默认为00 00;
00 06数据长度,用来指示接下来数据的长度,单位字节;
01设备号,设备号从00至FF任何数值均可以;我们所有TCP产品这里都没有定义设备号。
05功能码,功能码05为单路控制开关寄存器数据;
02 00寄存器地址;我们控制器的开关第1路是从0512地址开始的,10进制表示时是(0512),转为16进制为(02 00);
FF 开关状态控制方式,FF表示打开,00表示关闭;
00数量,默认填写00即可;
02 00寄存器地址;可以通过电子计算机进制转换,得到需要控制的第几路开关;
比如需要控制第13路,512+12=524,然后转换成16进制为20c,通过发送:00 00 00 00 00 06 01 05 02 0C FF 00即可打开,一般情况02这个基本上保持不变,我们只需将后面的0C改变一下就可以,00表示第1路,02表示第2路,0A表示第10路,0F表示第16路,10表示第17路…
当需要控制第230路时,一般中控主机开关可达上千路,计算方式可以512+229=741,转换为16进制为2E5,就可以发送00 00 00 00 00 06 01 05 02 E5 FF 00即可打开,
发送格式:
解:起始位6个字节,前面已提到过,填写(00 00 00 00 00 06)即可,表示后面有6个字节。
请求方式:00 00 00 00 00 06 01 01 02 00 00 00
响应方式:00 00 00 00 00 06 01 05 02 00 FF 00
00 00 传输标志,两个字节长度,填什么都可以;
00 00协议标识,两个字节长度,默认为00 00;
00 06数据长度,用来指示接下来数据的长度,单位字节;
01设备号,设备号从00至FF任何数值均可以;填什么都可以;
01功能码,功能码01为读入多个开关寄存器状态;
02 00寄存器地址;我们控制器的开关第1路是从0512地址开始的,10进制表示时是(0512),转为16进制为(02 00);
00 开关数量高位;中控主机正常情况检测128路作为一个包返回给上位机,而底位就可以达到这个数量,所以高位可填写00;
00 开关数量底位,一般我们可检测1路、2路、4路、8路、16路、32路、等等,一般一次不超过128路;
上图为DCS可编程中控主机内置寄存器地址位置,红色剪头表示的都为开关量,可以通过01号功能码发送协议查得对应的开关状态,比如发送查询S开关状态0512地址开始,一共查询10路可发送下图示例:
请求发送方式:00 00 00 00 00 06 00 01 02 00 00 0A
上图表示通过TCP查询地址02 00(0512),位于S寄存器地址的第1路,共查询10路(0A)。
数据返回如下图:
响应方式:00 00 00 00 00 05 00 01 02 01 00
起始位:00 00 00 00 00 05表示后面有5个字节
设备号: 00,与发送时相同
功能码: 01,与发送时相同
字节数量: 02,(第1个字节+1,与第2个字节+1)就表示有2个字节。
第1个字节:01,第1到第8路开关状态,8位状态,转换成二进制为:0000 0001,表示第1路打开,第2到第8路关。
第2个字节:00,第9到第16路开关状态,8位状态,转换成二进制为:0000 0000,表示全部都关闭。
注意:【字节数量】,这个地方为何显示02来表示后面有2个数节,因为一个字节表示8路开关,两个字节表示16路开关,3个字节表示24路开关,所以当我们查询的数量在16路的范围内含16路,会传回两个字节,当我们查询的数量是32以内或32路,且又大于24路时,将会返回4个字节,而这个02也将变为04。而这个就是【01】功能码的表达方式,是一个查询多路开关状态。所以后面的字节数量将不固定是会有多个,但每一次查询最大128路,而后面将继续介绍控制多路开关状态的【15】功能码。
功能码15,与功能码05、01也基本相同,发送报文时需要发送16进制,所以15转为16进制为【0F】,功能码15只是我们沟通用的口头语,硬件通迅叫0F。发送格式:
第一行表示只控制8路以内,第二行控制16路以内,第三行控制24路以内,第四行控制32路以内,还可以继续发送不同格式控制不超过128路以内。当超过128路时,起始地址可以自行修改从第几路开始控制,02 00表示第1路开始,那02 80就可以表示从128路开始控制。
请求方式:00 00 00 00 00 08 01 0F 02 00 00 08 01 04
00 00 传输标志,两个字节长度,填什么都可以;
00 00协议标识,两个字节长度,默认为00 00;
00 08数据长度,用来指示接下来数据的长度,单位字节,重要,这里跟控制数量有关系,数量多这里将随之增加,看一下这一串数据有多少数量(00 00 00 00 00 08 01 0F 02 00 00 08 01 04),背景红色的就是数量,一共有8个。
01设备号,设备号从00至FF任何数值均可以;填什么都可以。
0F功能码,功能码0F,也叫做15号功能吗,为写入多个开关寄存器状态;
02 00起始地址;我们控制器的开关第1路是从0512地址开始的,10进制表示时是(0512),转为16进制为(02 00);
00 08表示需要控制多少路,00是高位,08是底位;
01后面字节数量,通知控制器,后面将要发送多少字节,一个字节表示8路,01表示一个字节(也就是只控制8路);
04第1字节,这个字节表示8路中,有多少个开,有多少个关,04转为二进制为:00000100(排序为87654321),也就是第3路打开,其它全关;
例:比如控制8路某几路开关;
请求方式:00 00 00 00 00 08 01 0F 02 00 00 08 01 D5
响应方式:00 00 00 00 00 06 01 0F 02 00 00 08
所有的返回值都只是发送时的前12个字节,因为前面有提到过起始地址第6个字节是表示后面有多少个字节,所以08数量也变成06了。
例:比如控制13路某几路开关;
请求方式:00 00 00 00 00 09 01 0F 02 00 00 0D 02 D5 0F
响应方式:00 00 00 00 00 06 01 0F 02 00 00 0D
控制13路时,转换成十六进制为0D,需要2个节字,一个字节表示8路,所以字节数量使用两个,然后跟着控制前8路和后8路,控制前8路D5用二进制表示为:11010110,后8路0F用二进制表示为:1111,后面没有0补足0,相当于00001111,所以控制开关时,不管是控制多少路,也需要按8路的方式进行多路控制。返回结果:也是跟发送时的前12个字节相同,只是第6个字节有所变化。
模拟量的应用
中控主机内部地址提供的模拟量数量众多,中控主机会从RS485通迅接口上读取各种模块,各种仪表中的数据,然后将这些数据保存在中控主机的地址池,再提供给开发工程师通过TCP方式发送报文进行读取地址池的数据。另外除了扩展到的模拟量数据可以转换成TCP方式,中控主机内部自带一些延时、计时、计数、用户输入值、时间信息等,都可以从TCP进行读写操作,03功能码为读多路寄存器状态如下:
上图为发送报文结构方式,输入03功能码,其实与查询开关量01功能码完全一样,中控主机重新分配了一些地址池专门保存模拟量数据,地址池的分配参考链接:http://www.jinruida.net/107.html。
首先提示一下,我们读取模拟量返回的数值是16位的,所以需要2个字节来表示1个值。
比如读取第1路模拟量:
发送:00 00 00 00 00 06 01 03 00 00 00 01
00 00 00 00 00 06这一组为数据报头,注定的,直接记住就可以了,06表示后面有多少个字节。01表示地址号,03表示功能码,00 00表示从哪一个寄存器地址作为基准位开始读取,填高位和底位,00 01表示读取多少个模拟量,这里底位01表示只读取1个。
(什么叫高位、底位,十六进制FF是最大数值,转为10进制来理解就是255,再加0就是256个(但256会进位变成00),而中控主机模拟量将会超过256个,所以这个位最多就是FF(256)不够使用,所以就有了高位来表达直超过256的个数,比如可以表达260个、300个、1000个等,
Byte数据类型(字节型)用一个字节(Byte)储存,可区别256个数字,取值范围:0到255。两个字节一起就是一个位,可表达数字(int16)整数为:0-65535,或者带负数形式表示为:-32768~32767。
返回:00 00 00 00 00 05 01 03 02 00 14
返回的00 00 00 00 00 05 01 03一共8个字节是与发送时一样,只是06变成05,工程师只需判断返回的第6个字节数值是05,就可以知道后面再加5个字节是本次有效值,01 03 02 00 14这5个字节都是本次返回的有效值,其中01 03是设备号,和功能码,是与发送时一样的,剩下02 00 14,02是一个数量,表示后面有2个字节值。00 14表示一个16位模拟量值,00为前8位,14为后8位,加起来为16位,叫16位模拟量(Signed)。
简单地讲,(00 00 00 00 00 05 01 03 02 00 14)除了返回前8个字节是与发送时一样(除了第6个),后面的跟着跟着的一个02是数量,其它是数值,02表示后面有2个字节是有效字节数值。这里展示读取了一个16位模拟量,00 14就是值,因为一个字节为8位,所以2个才能组成16位,直接可将16进制的0014转为十进制是20,如果表示温度就可以当20度。
发送:00 00 00 00 00 06 01 03 00 00 00 03
发送格式中数量高位底位为00 03,表示只读取3个模拟量(1个16位的模拟量值用2个字表来表示,会返回6个字节)。
返回:00 00 00 00 00 09 01 03 06 00 14 00 00 00 00
返回数据除了与发送时前8个字节相同,06后面就是读取到的数据,一共有6个字节,00 14,00 00 ,00 00,每2位为一个值。
上图用一个modbus测试工具通过TCP方式查询3个模拟量结果。
上图表示返回报文结构方式。
发送查询模拟量数量时,数据长度会根据发送查询多少个来返回多少个,一次最多不超过120个,且间隔时间相对调整在100mS以上。
…
…