广东湘恒智能科技有限公司
主营产品: 西门子变频器,西门子PLC\西门子模块、西门子触摸屏、西门子伺服电机、西门子工控机、西门子集成系统、西门子低压、西门子控制单元、西门子CPU,广东省西门子授权代理商,等
S120的非周期性通讯
发布时间:2024-11-09

用过S120的工程师都知道,S120有很多种通讯方式,最常见的有PROFIdrive 通讯、PROFIBUS DP 通讯、PROFINET IO 通讯、Modbus TCP 通讯、EtherNet/IP(EIP)通讯等等。与西门子的PLC通讯时前三种是最方便也是最常用的。这次我主要分享一下PROFIdrive 通讯里面的非周期性通讯。


当我们在做程序的时候,一般都是选择适合的报文,让PLC与S120进行数据的交换或控制,这种通讯方式为PROFIdrive的周期性通讯,当有时候我们需要读取很多驱动参数的时候,周期性通讯将满足不了我们的要求了,这种情况下我们有两种选择,第一就是用FB286功能块进行读写,但调用一次最多只能读取16个参数,如果超过16个参数,那就需要重复调用,这时候用非周期性通讯将会是一个不错的选择。


使用非周期通讯对读写参数数量没有限制,但每个读写任务最大为 240 个字节。当用S7-1200/S7-1500与S120走非周期性通讯时,需要采用系统功能块“WRREC”和“RDREC”,其中“WRREC”将“请求”发送给 S120,“RDREC”将 S120 的“应答”返回给 PLC,这样就完成了一个读写的循环。


S120与PLC的通讯组态已经介绍过很多次,在这里不多做介绍,主要介绍一下程序中怎么去编写报文。如下图▼

图片

第1部分是PLC通过“WRREC”发送给S120的报文,如果通讯成功,S120将通过“RDREC”返回第2部分报文,作为响应。这里对报文结构里的几个数据进行说明:

请求ID:读16#01,写16#02;

轴号ID:这里指驱动的轴号,G120为1,V90为2,S120根据组态选择相应轴号;

参数数量:要读取或写入的参数数量;

参数属性:要读取参数的值 16#10,只读取参数的描述16#20(只适用于读任务);

其他数据可以根据我程序里的变量名称直观的了解其含义。


图片图片

“WRREC”.REQ:每一个上升沿执行一次;

“WRREC”.ID:选择驱动的硬件标识符;

“WRREC”.INDEX:固定为47;

“WRREC”.RECORD:请求读报文从DB1.DBW0开始,长度一共8个字;

 

“RDREC”.REQ:每一个上升沿执行一次;

“RDREC”.ID:选择驱动的硬件标识符;

“RDREC”.INDEX:固定为47;

“RDREC”.MLEN:响应报文长度为16个Byte;

“RDREC”.RECORD:响应报文返回的数据存入从DB1.DBW20开始的字,长度一共8个字;

"WRREC_DB".REQ的上升沿触发"WRREC“功能块,向S120发送请求读报文,读取参数r21实际速度与r31实际扭矩,完成信号"WRREC_DB".DONE触发“RDREC”功能块,接收响应报文,测试结果如下图▼

图片图片图片图片


对于写请求也是一样,先要通过“WRREC”功能块发出写请求报文,向P1120和P1121两个参数分别写入加速时间10S,减速时间15S,然后通过“RDREC”功能块读取响应报文。结果显示通讯成功,写入2个参数▼

图片图片


展开全文
拨打电话 微信咨询 发送询价