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

供应商
广东湘恒智能科技有限公司
认证
变频器
西门子代理商
触摸屏
西门子一级代理
伺服电机
西门子一级总代理
联系电话
18126392341
手机号
15267534595
联系人
梁涛
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)(注册地址)
更新时间
2024-05-28 09:10

详细介绍

配置模块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] ofword)和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,跳转下一步骤。


代理商,变频器,PLC,伺服电机,一级代理

展开全文

我们其他产品
我们的新闻
咨询 在线询价 拨打电话