您好!欢迎光临工博士商城

西门子PLC服务商

产品:763    
联系我们
您当前的位置:首页 » 新闻中心 » S7-1214C通过模块扩展CM1241(RS422/485)实现Modbus rtu通讯
产品分类
新闻中心
S7-1214C通过模块扩展CM1241(RS422/485)实现Modbus rtu通讯
发布时间:2020-09-10        浏览次数:4247        返回列表
 西门子PLC
需要在S7-1214C PLC中需要添加一个Modbus rtu通讯口,读取流量仪表及其它第三方仪表的数据。之前,没有做过S7-1200系列的Modbus rtu通讯项目,于是拿出原来做过200 Smart Modbus rtu时的富士温度表,作为验证对象,组态一个以S7-1214C模块扩展的CM1241的Modbus rtu做Modbus rtu通讯验证。
验证硬件:软件:portal V15
1) S7-1214C(订货号:6ES7 214-1AG40-0XB0),RS422/485模块(订货号:6ES7 241-1CH32-0XB0)作为Modbus rtu通讯的接口模块。
2) 为连接到富士温度表实现Modbus rtu通讯,采用西门子DP插头,直接连接到富士仪表端子,其中CM1241侧3+对应富士温度表端子26#,8-对应富士温度表端子25#。
3) 富士温度表订货号:PXF9AEY2-FWM00。
富士温度表通讯参数设置:
1) 设置从站地址:富士温度表地址为5#;参数:参数通道9的761#
2) 设置通讯频率:9600 Pbs;参数:参数通道9的762#;、参数通道9的763#为NONE(无校验)
3) 其它参数暂时不设置。
程序:
1) 组态一个以S7-1214C(DC/DC/DC)为主控的项目,并按项目要求扩展一个通讯模块CM1241 422/485,插入到101槽位,并定义通讯参数(这里均按富士仪表的通讯参数保持一致):
调用系统和时钟存储区:
2) 创建一个数据块DB,用于实现Modbus rtu通讯时的时间交换区域:
创建DB时,在属性中取消“优化的块访问”。
3) 利用创建的系统标志位M1.0,初始化标志位在S7-1200启动的***个扫描周期,将数值4传送到在“Modbus_Comm_Load.DB”MODE,将工作模式设置为半双工 RS485两线制模式:
4) Modbus rtu通讯口初始化程序:
这里的PORT管脚连接的是CM1241硬件:
5) 利用初始化完成标志位,M2.0传输轮询状态值结果存放在MB6:
从MB6的状态值中,可以看通讯轮询的状态(轮询位置)
6) 试着将富士温度表SV数据写入数据区40003中:
Modbus Master指令:
REQ:指令使能端
MB_ADD:从站地址,按既定的定义,填写从站:5
MODE:=0,读从站数据; = 1,写从站数据(因为要将40003的数据写入温度表,这里填写为1,写数据)
DATA_ADDR:数据寄存器地址,40003 = 富士温度表的SV通讯地址
DATA_LEN:数据的长度,这里是一个字(word)
DATA_PTR:主站存放待写入、发送到从站的数据寄存器地址,DB3对应的地址。
DONE:指令完成标志位,完成后为1,进行时为0.
BUSY:运行状态值
ERROR:指令出错时为1.
STATUS:指令的工作状态,正常时为0.
7) 如果能够顺利执行Modbus_Master指令,则完成标志位M2.2 = 1,将通过逻辑关系下转到第2条Modbus_Master指令:
8) 第2条指令,这里定义为读从站5是PV数据,地址:32001
将读取到的PV数据存放在DB3.DBW2中。
9) 读取从站5的PV数据完成后,返回到***条写SV指令中:
这样作为一个无限循环的逻辑,实现对从站5的读与写操作。
   将硬件及用户Modbus rtu程序下载到实际的PLC中,连接必须的通讯数据线,我这里因为的验证程序,所以随便找了一条普通的0.5平方导线连接到温度表,连接好温度表电源及K型传感器(导线替代)输入,在线监控:读取到的PV值
上述程序旨在验证Modbus rtu通讯轮询及初始化功能及Modbus_Master指令各管脚的正确填写方式,如果与其它第三方通讯方式是一致的。
上述程序是参考***例子程序的模板而写的。


分享到: 


 

联系热线:13397493317   联系人:佘小姐 联系地址:上海市嘉定区南翔镇众仁路399号B栋20层2007-2012

技术和报价服务:星期一至星期六8:00-22:00 西门子PLC服务商