SIEMENS甘肃省西门子(授权)中国一级代理商-西门子技术支持-西门子变频器

发布日期 :2023-11-23 18:32 编号:12433916 发布IP:120.229.159.174
供货厂家
广东湘恒智能科技有限公司  
变频器
西门子代理商
触摸屏
西门子一级代理
伺服电机
西门子一级总代理
报价
电议
联系人
梁涛(先生)
手机
18126392341
询价邮件
450700973@qq.com
区域
惠州变频器
地址
石化大道太东天地花园
在线咨询:
点击这里给我发消息
让卖家联系我
详细介绍
手机版链接:https://m.trustexporter.com/cz12433916.htm

配置模块MB_COMM_LOAD的触发REQ只需要在连接时触发一次啊,因此直接将系统内置的变量“firstscan”写入即可,上电后执行一次。

由于通讯的读和写都由主站模块MB_MASTER完成,因此我们对这个模块进行两次赋值,第一次实现读的功能,由modbus地址40100开始,读5个数据,写入"ModbusData".Read_Data中;第二次实现写的功能,将"ModbusData".Sent_Data中的数据写入由modbus地址40110开始的5个数据中。

程序写到这里已经可以进行通讯了,如果想要在线实验一下,可以将变量写入监控表,手动触发读写触发引脚变量,观察模块的输出状态,这里就不演示了。

3.编写轮询程序

所谓轮询就是依次询问,假设我们有3个设备作为modbus从站,从站地址(站号)依次为1,2,3,使用case语句依次对这3个设备进行读写操作,而读出和写入的数据分别存入3套不同的变量当中。

图片

建立设备变量

使用一个结构体来描述一个设备的所有信息,包括5个状态字(states:Array[0..4] of Word)和5个控制字(ctrl:Array[0..4] of Word),将结构体声明为数量为3的数组,存放3个设备的数据。

在整个循环开始前,设定起始设备地址,然后按照“读操作触发,读数据,读设备地址+1,延时,写数据,写操作触发,写设备地址+1,延时”的顺序持续循环,按照设备地址号选择上面的结构体变量:

图片

读操作

iStep=0时,关闭读写触发,设定读写设备地址为1;

iStep=10时,读操作触发,模块发出读数据命令,模块置位busy信号;

iStep=11时,等待读操作完成,模块读到设备数据后会置位done信号,复位busy信号,根据信号状态将读到的数据(Read_Data)写入设备数据结构体(DeviceData.states),如果设备地址=1,则写入DeviceData[1].states,设备地址变化,写入的结构体也会相应的变化,保证不同设备的数据不会互相干涉。这里加一个判断,一段时间读不到数据返回10步骤重新进行读操作。

iStep=12时,用计数的方式做一个简单的延时功能,避免因读写频率太快导致设备反应不过来。

图片

写操作

向设备写入信息,在写入操作触发前要先将相应设备结构体中的数据(DeviceData.ctrl)写入发送数据缓存区(Sent_Data),然后再进行写操作,与读操作类似,写入完成后设备地址+1,跳转下一步骤。



我们的其他产品
您可能喜欢
一级代理商AVX一级代理商TTV郑州一级代理商TTV一级代理商ABB一级代理商施耐德一级代理商
 
相关一级代理商产品