浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
鹤岗西门子PLC总代理商

Modbus 从站读写程序

在个循环周期内插入MBUS_INIT指令初始化Modbus从站协议:

Mode:       模式选择,启动/停止MODBUS,1=启动;0=停止

Address:     从站地址,MODBUS从站地址,取值1~247

Baud:       波特率,可选1200,2400,4800,9600,19200,38400,57600,115200

Parity:       奇偶校验,0=无校验;1=奇校验;2=偶校验

Delay:       延时,附加字符间延时,缺省值为0

Done:        初始化完成标志,成功初始化后置1

Error:        初始化错误代码

 

 

在本例子中,设置从站地址为8,Port0 通讯波特率为9600bps,无校验;

本例子中Modbus RTU 从站指令使用的库存储为VB2000---VB2779,这段寄存器地址不能再被程序中的任何指令使用,包括MBUS_INIT 和MBUS_SLAVE 指令在内。

 

 

 

MBUS_SLAVE指令被用于为Modbus主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答Modbus请求。在每次扫描且EN输入开启时执行该指令。

三、无线Modbus通信的实现方法

      以上说明了采用有线RS485总线实现多台PLC之间的远程控制方法,有时由于现场条件的限制,重新布设通信线路很不方便,例如山上与山下,或者横跨马路的情况,尤其对于工程改造项目二次布线几乎是甲方无法接受的。在这种情况下,可以采用DTD433无线通信模组代替通信电缆,实现起来非常方便,不需要编程。

      无线通信模组采用中心频率为433MHz开放的ISM频段,内部使用全数字RF通信芯片与单片机组成无线数传系统,外部通信接口与RS485总线完全一致,为了使用方便,通信实现所发即所得,也就是说数据通信是完全的透明方式,这样的话,用两个DTD433模组能够直接代替有线的RS485通信导线。需要注意的是:

PLC的Modbus通信速率要与无线数传模组的波特率设置一致,例如通信参数可以设置为9600bps,8位数据,无效验位。

S7_200的RS485+连接DTD433的RS485_B;

S7_200的RS485-连接DTD433的RS485_A;

无线数传模组的供电电源为直流24V,与PLC可以共用电源;

无线通讯距离在200米左右选用DTD433A模组;

无线通讯距离在1000米左右选用DTD433B模组;

无线通讯距离在3000米左右选用DTD433C模组;

保证通信距离,提高通信质量要选择高增益的吸盘天线,天线安放高度离地面越高效果越好。

 

 

 

 

 

四、PLC与DTD433无线模组通讯成功的案例

西门子PLC与DTD433C-S4   9600bps,8,N,1,RS485口        

海为PLC与DTD433C-S4   9600bps,8,N,2,RS485口        

台达PLC与DTD433A_S4   9600bps,7,E,1,RS485口    

 在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的PLC之间需要进行远程相互控制,通常是采用RS485总线,通过MODBUS协议完成此功能。

      如果现场布线不方便的话,也可以采用无线方式进行通信。这里以达泰DTD433无线模组和西门子S7_200为例进行说明。

一、两台S7_200 西门子PLC之间的远程控制

 

 

 

实现的功能:

PLC1的8个开关量输入,I0.0~I0.7与PLC2的开关量输出Q0.0~Q0.7一一对应,也就是说上图中的A1开关按下时,PLC1的开关量输入I0.0闭合,PLC2的输出继电器触点Q0.0导通,L2点亮。

PLC2的8个开关量输入,I0.0~I0.7与PLC1的开关量输出Q0.0~Q0.7一一对应,也就是说上图中的A2开关按下时,PLC2的开关量输入I0.0闭合,PLC1的输出继电器触点Q0.0导通,L1点亮。

PLC1与PLC2之间的通信是通过S7_200 CPU22XP的Port0通信口的RS485总线连接的,其中采用了Modbus协议。

二、西门子PLC通信中的Modbus协议编程方法

假设把PLC1作为主站,PLC2作为从站,分别编写主站和从站程序,主要掌握以下要点:

Modbus 主站读写程序

Modbus RTU主站功能是通过指令库中预先编好的程序功能块实现的,该库只针对Port 0口有效;

在程序中插入MBUS_CTRL指令,并在每次扫描时执行MBUS_CTRL。您可以使用MBUS_CTRL指令初始化或更改Modbus通讯参数。

  

 

 

Modbus RTU主站使用了一些用户中断,在用户程序中不能禁止中断;

读取从站数据在程序中插入MBUS_MSG指令,注意从站地址设置用一致;

该例程访问的为一个从站,若访问不同的从站,可通过改变从站地址来实现。

1、S7-200库安装文件默认安装在地方详见上传的图片。
2、STEP 7-Micro/WIN V4.0 以上版内部已经带有新的指令库,但在未安装西门子 Instruction Library 软件包的情况下,不能显示出来使用。
 要使用西门子的标准指令库,必须先安装西门子的指令库软件包 Instruction Library。安装了 Instruction Library 之后,只要安装的 STEP 7-Micro/WIN 版本是新的,就能获得相应版本的新指令库。安装 Micro/WIN 的升级包(Service Pack)也会更新指令库的版本。
S7-200库安装文件 STEP 7 V11将STEP 7老版本的“库”中的SFC、SFB、FC和FB也称为指令,分为基本指令、扩展指令、工艺和通信4大部分。原来“库”中的某些块被放入基本指令,原来的某些指令被合并为一条指令。
    以梯形图中的比较指令为例,原来的方框比较器改为像S7-200一样的触点形式(见下图)。可用下拉式菜单设置7种数据类型,因此几十条比较指令被合并为6条。

    下面是各类基本指令的变动情况:
    1)IEC定时器、计数器(SFB0~SFB5)被列入基本指令。
    2)数学运算指令可选3种数据类型(Int、Dint和Real),增加了MIN、MAX和LIMIT指令。
    3)移动操作增加了SFC BLKMOV、UBLKMOV和FILL指令。
    4)转换操作增加了SCALE(FC105)和UNSCALE(FC 106),原来的多条数据转换指令合并为一条CONV指令,转换前后的数据类型均可设置(见下图)。

5)程序控制操作增加了OPN(打开全局数据块)、OPNI(打开背景数据块)、RE_TRIGR(复位循环周期监视时间)、STP(退出程序)、WAIT(设置等待时间)、PROTECT(更改保护等级)指令。

6)字逻辑运算指令将不同的数据类型的指令合并为4条指令,增加了DECO(解码)、ENCO(编码)和SEL(选择)指令。

7)不同数据类型的移位、循环指令合并为4条指令。

8)其他操作指令:原来的状态位触点指令被合并为常开和常闭触点两条指令。

新增了SET(置位位数组)、RESET(复位位数组)、SETP(在I/O 区域置位位数组)、RESETP(在I/O 区域复位位数组)、SETI(置位字节数组)、RESETI(复位字节数组)、REPL_VAL(输入替换值)、DRUM(执行顺控程序)、DRUM_X(执行顺控程序)、DCAT(离散控制定时器报警)、MCAT(电机控制定时器报警)、IMC(比较输入位与掩码位)、SMC(比较扫描矩阵)、LEAD_LAG(提前和滞后算法)、TONR_X(时间累加器)、WSR(将数据保存到移位寄存器)、SHRB(将位移动到移位寄存器)、SEG(创建7 段显示的位模式)、BCDCPL(求十进制补码)、BITSUM(统计置位位数量)。

编程时可将编程区之外的其他窗口临时关闭,V11版的梯形图比V5.4的紧凑一些。

  4.依此点击“Create”,“Done”。

 




  5.在主菜单上选择“Item”。

  6.输入已知正常工作的PLC寄存器地址。

  7.下图显示了WWClient成功取得S7 PLC数据项MB90,在Item输入框中的输入MB90,点击AdviseEx注册并开始获取此数据项,如果连接S7 PLC的以太网工作正常的话,你会看到从MB90寄存器中取得的数据,如图9,10所示:

 

图9.
图9. Item





 

WWClient显示MB90的值
图10. WWClient显示MB90的值



      制作好你所需要的大窗口bbbbbbName,并假定窗口大小为(Width, Height)。

  此TechNote由Wonderware 中国技术支持部门发布。



  这是由Wonderware 中国的技术支持写的有关Wonderware产品的技术信息,供中国地区的分销商,系统集成商以及终用户参考。此技术信息并不包括在Wonderware公司提供的KBCD中,但使用者应参看Wonderware公司KBCD中的Terms of Use,获取并保证接受其规定的使用者应遵守的相关约定。

 10.选择并用右键点击默认名Topic_0, 把它重新命名成一个有意义的名字,如S7PLC, 如图5所示:


 

S7PLC Device GroupPLC Device Group>
图5. S7PLC Device Group




  11.在左面的树形结构图中,右键点击ArchestrA.DASSIDirect.1并从子菜单中选择“Activate Server”来启动此DA Server,ArchestrA.DASSIDirect.1旁边的图标将由红变成绿,如下图6所示:



 

SIDirect DA Server已激活
图6. SIDirect DA Server已激活




  测试此 DASSIDirect Server

  DASSIDirect Server已经准备就绪,下面做一个快速的通信测试来验证和我们可以和PLC的连接。

  1.点击“开始/运行”并键入WWClient启动Wonderware WWClient程序。

  2.从主菜单上选择“Connection/Create”,将出现“Create Connection”对话框。

  3.输入正确的信息,如图7所示:

  ◆ Node: 此处为空白,因为DASSIDirect Server和WWClient在同一台计算机中。否则,输入运行DAServer的机器的名字。

  ◆ Application: DASSIDirect, SIDirect DAServer的应用程序名。

  ◆ Topic: S7PLC,我们刚才在DASSIDirect的Device Group对话框中新建的Device Group。

  ◆ Connection Type: IOT,在这里,我们使用Suibbbink协议。


 

Create Connection 对话框
图7. Create Connection 对话框


展开全文
优质商家推荐 拨打电话