全国服务热线 15821971992

乐山西门子电缆6XV1840-2AH10

更新时间:2023-10-26 04:00:00
价格:请来电询价
品牌:西门子
型号:模块
产地:德国
联系电话:15821971992
联系手机: 15821971992
联系人:聂聪
让卖家联系我
详细介绍

启动Modbus协议

读操作

MBUS_MSG(端口0使用)指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。

当EN输入和''输入打开时,BUS_MSG指令启动对Modbus从站的请求。发送请求、等待应答、并处理应答通常需要多次扫描。EN输入必须打开以启用请求的发送,并应该保持打开直到'完成'位(M10.1)被置位。


MBUS_MSG指令 



First(启动),在有新请求要发送时才打开以进行一次扫描,通过一个边沿检测元素(例如上升沿)打开,这将导致请求被传送一次。

Slave(从站地址) 从站的地址,允许的范围是0到247,地址0是广播地址,只能用于写请求。不存在对地址0的广播请求的应答。从站的实际地址范围为1-247(从站的地址(Slave)在1-247范围内任选一个数即可,但需要和从站程序中的地址对应,否则通讯失败)。主站在Modbus网络上没有地址。

RW('读写') 指定是用来读取还是写入该消息。'读写'参数允许使用下列两个值。

0  读

1        写

Addr (地址) 是指向读取或写入的起始Modbus地址,'地址'的指定取值范围基于Modbus从站支持的地址。一般都取40001。

Count (计数) 指定在该请求中读取或写入的数据元素的数目,MBUS_MSG指令将读取或写入大120个字或1920个位(240字节的数据)。'计数'的实际限值将取决于Modbus从站中的限制。

DataPtr(地址指针) 指向S7-200 CPU的V存储器中与读取或写入请求相关的数据的间接地址指针。DataPtr值作为间接地址指针传递到MBUS_MSG。例如,如果要写入Modbus从站的数据从S7-200 CPU中的地址VW200开始,则DataPtr的数值将会是&VB200 (VB200的地址)。指针必须始终是VB类型,即使它们指向字数据。

 19.jpg

Done(完成位) 输出在发送请求和接收应答时关闭。'完成'输出在应答完成或MBUS_MSG指令因错误而中止时打开。完成信息存入辅助寄存器中(如M10.1)

Error(错误) 输出仅当'完成'输出打开时有效,反馈错误代码,存入辅助位寄存器中(如MB6)

MBUS_MSG。

错误代码         说明

0       无错误

1       应答时奇偶校验错误:仅当使用偶校验或奇校验时才会发生。传输被干扰,可能会收到不正确的数据。该错误通常是由电气故障(例如错误接线或者影响通讯的电噪声)引起的。

2       未使用

3       接收超时:在'超时'时间内,没有来自从站的应答。可能有以下一些原因:与从站的电气连接有问题、主设备和从站设置为不同的波特率/奇偶校验设置,以及错误的从站地址。

4       请求参数出错:一个或多个输入参数(从站、读写、地址或计数)被设置为非法值。检查文档中输入参数的允许值。

5       Modbus主设备未启用:在调用MBUS_MSG前,每次扫描时都调用MBUS_CTRL。

6       Modbus忙于处理另一个请求:一次只能激活一条MBUS_MSG指令。

7       应答时出错: 收到的应答与请求不相关。这表示从站中出现了某些错误,或者错误的从站应答了请求。

8       应答时CRC错误: 传输被干扰,可能会收到不正确的数据。该错误通常是由电气故障(例如错误接线或者影响通讯的电噪声)引起的。

101  从站不支持在该地址处所请求的功能:请参阅'使用Modbus主设备指令'帮助主题中的所需Modbus从站功能支持表。

102  从站不支持数据地址:'地址'加上'计数'所要求的地址范围超出了从站所允许的地址范围。

103  从站不支持数据类型:该'地址'类型不被从站支持。

104  从站故障

105  从站已接受消息但应答延迟:这是MBUS_MSG的错误,用户程序应在稍后重新发送请求。

106  从站忙,因此拒绝消息:可以再次尝试相同的请求,以获得应答。

107  从站因未知原因而拒绝消息。

108  从站存储器奇偶校验错误:从站中有错误。

 

低位编号的错误代码(1到8)是由MBUS_MSG指令检测到的错误。这些错误代码通常指示与MBUS_MSG指令的输入参数有关的问题,或接收来自从站的应答时出现的问题。奇偶校验和CRC错误指示存在应答但是数据未正确接收。这通常是由电气故障(例如连接有问题或者电噪声)引起的。

高位编号的错误代码(从101开始)是由Modbus从站返回的错误。这些错误指示从站不支持所请求的功能,或者所请求的地址(或数据类型或地址范围)不被Modbus从站支持。

由于一次只能激活一条MBUS_MSG指令。所以在条MBUS_MSG指令完成后,启动第二条指令,同时必须复位条指令。如果启用了多条MBUS_MSG指令,则将处理所执行的条MBUS_MSG指令,之后的所有MBUS_MSG指令将中止并产生错误代码6。


 



写操作

M10.0动作之后启动第二条MBUS_MSG指令(写指令)(所谓通讯就是主/从的读、写或者读写的交互过程),将主站的数据写入到从站的处理器中。


MBUS_MSG指令 



Slave(从站地址) 同读操作不变,地址与从站相一致。

RW写1,启动“写”功能。

Addr 不能与“读”地址重合。

Count 同上。

DataPtr 同上,不能与读操作地址重复。

Done 同上,存储器不能重复。

Error 同上,位寄存器好不要重复。

写操作完成后,置位读操作,复位写操作。

验证测试:PTO方式

1) PLC:S7-1214C DC/DC/DC 必须是晶体管输出型,或者板载信号板,版本V4.2;

2) 第三方步进电机+步进驱动器;

3) 西门子20A电源模块;

4) Portal V15软件。

程序:

1) 仍然按老方法,创建一个验证项目,CPU S7-1214C DC/DC/DC,版本V4.2,图示:

2) 点击“确认”后,在“设备视图”窗口cpu的“属性”---“常规”选项中选择“脉冲发送器PTO/PWM”,勾选“启动脉冲发送器”,图示:

3) 在这个窗口中继续选择PTO及定义信号类型输出,脉冲A和方向B,其中脉冲输出Q0.0(板载100KHz),方向控制Q0.1(系统默认)。由于控制方向并不需要高速脉冲,这样,选择Q0.4(板载20KHz)相对还是比较合理、合适的,图示:

4) Portal V15版本环境中,这个硬件标设在“系统常数”中能够查找到,图示:

5) 硬件组态相对还是比较简单的,都只是一些选项和设置,返回到编程窗口,在主程序OB1中,将“扩展指令”中的“脉冲---CTRL_PTO”指令拖拽到程序编辑区,背景数据块名称、数据块号按默认选择:

6) CTRL_PTO指令非常简单,没有多少管脚。因为我验证测试的是第三方步进电机,需要有方向判断区别。由于这个方向控制,无法在该指令中实现,需要另外单独在程序中控制。根据F1帮助,很快能够理解各管脚的数据类型及含义:

其中:

REQ:CRTL_PTO指令的使能端,脉冲上升沿触发;BOOL

PTO:硬件标设,与系统常数一致,Local~Pulse_1(265);HW_PTO

FREQUENCY:输出脉冲序列频率(Hz);UDINT

DONE:状态值,0表示没有启动或者正在运行中,1表示完成;BOOL

BUSY:处理状态;BOOL

ERROR:错误标志位,0:没有错误,1:有错误;BOOL

STATUS:错误状态值。WORD

7) 此,如果仅仅只是对步进电机没有方向的测试,CRTL_PTO指令已经可以满足需求了,如果需要有方向的测试,可以通过外置一些简单的逻辑控制,也能够满足步进电机对方向及速度的控制:

8) 保存、编译项目并下载。随意定义正转脉冲MD14 = 1000,反转脉冲MD18 = 500,使能M4.0的上升沿,启动正转,图示:

使能M4.0后,能够看到步进电机转动。尝试其它2种控制方式,步进电机能够停止及按MD18的设置速度反转,相对CTRL_PTO指令加入简单的方向逻辑控制,能够简单的测试步进电机的正、反转速度控制。


没有

联系方式

  • 地址:上海杨浦 上海市松江区广富林路4855弄88号3楼
  • 邮编:200093
  • 电话:15821971992
  • 经理:聂聪
  • 手机:15821971992
  • 传真:021-33556143
  • QQ:2724917714
  • Email:2724917714@qq.com