CPU226CN如何通过MODBUS ASCII模式与多台仪表通讯?

小弟正做一个项目,CPU是226CN,仪表的modbus模式是ASCII,仪表台数24台。仪表的通信参数是:9600波特率,无校验,1起始位,1停止位。现在只要求读取24台表的数据,仪表的通信指令要求:指令长度5字节;指令格式是:指令前缀——通信地址高位——通信地址低位——读取命令——命令码。例子:5个字节的内容分别是:@_0_3_R_1,意思就是读取通讯地址为3的仪表的测量值。

小弟的疑问是,XMT和RCV如何指定发送地址?如何才能不让这些数据的传输不冲突?还有终端电阻是120欧姆还是330欧姆?有朋友做过类似项目吗,能不能把你的组态文件借我学习一下呢?万分感谢啊!

最佳答案

传送(XMT)指令在自由端口模式中使用,通过通讯端口传送数据。接收(RCV)指令开始或终止"接收信息"服务。您必须指定一个开始条件和一个结束条件,"接收"方框才能操作。通过指定端口(PORT)接收的信息存储在数据缓冲区(TBL)中。数据缓冲区中的第一个条目指定接收的字节数目。
给你举个例子
NETWORK 1 // 主程序
LD SM0.1 // 首次扫描时,
MOVB 16#09 SMB30 // 初始化自由端口:
 // – 选择9600波特
 // – 选择8个数据位
 // – 选择无校验
MOVB 16#B0 SMB87 // 初始化RCV信息控制字节:
 // – RCV被启用
 // – 检测到信息字符结束
 // – 将空闲行条件检测为
 // 信息开始条件。

MOVB 16#0A SMB89 // 将信息字符结束设为hex OA(换行符)。
MOVW +5 SMW90 // 将空闲行超时设为5毫秒。
MOVB 100 SMB94 // 将最大字符数设为100。
ATCH INT_0 23 // 将中断附加在接收完成事件上。
ATCH INT_2 9 // 将中断2附加在传送完成事件上。
ENI // 启用用户中断
RCV VB100 0 // 为端口0在VB100位置启用带缓冲区的接收方框

NETWORK 1 // 中断0
// 接收完成中断例行程序
LDB= SMB86 16#20 // 如果接收状态显示接收结束字符,
MOVB 10 SMB34 // 则附加一个10毫秒计时器,
ATCH INT_1 10 // 触发传送

CRETI // 并返回。

NOT
RCV VB100 0 // 如果因任何其他原因接收完成,
 // 则开始新的接收。

NETWORK 1 // 中断1
// 10毫秒计时器中断
LD SM0.0
DTCH 10 // 分离计时器中断
XMT VB100 0 // 将信息传送回端口0中的用户

通讯电缆长度超过50米时在接收端R(A)与R(B)端加入330欧姆电阻。
见《S7-200基于modbus协议与智能仪表之间的通信实现方法》连接: 
http://*s.jdzj.com/showart.asp?art_id=6877

提问者对于答案的评价:
谢谢指教!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc315557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐

  • 晶体管/继电器模块

    S7-200有晶体管型号和继电器型号的,如果不考虑输出脉冲的话,该如何选择呢?现在担心的是,继电器型号的继电器是集成在PLC内部的,如果继电器有故障的话,检查和维修都很困难.晶体管…

    SIMATIC S7-200 2020年10月31日
  • 高速计数器中脉冲计数不为负数怎么办?

    高速计数器给位移传感器计数脉冲,AB相增量式,模式9.往外拉脉冲数增加,往里缩,脉冲数减少。当脉冲数量为0的时候,往里缩,脉冲数应该是负计数才对,但是实际显示为4785642222…

    SIMATIC S7-200 2017年11月16日
  • 200 smart的样本以及软件下载地址

    RT 最佳答案 https://www.industry.siemens.com.cn/automation/cn/zh/automation-systems/industrial…

    SIMATIC S7-200 2021年7月5日
  • 224CN与PC无法通讯

    几个模块重新输程序时有一个无法连通,其余皆通讯正常。已经放在stop键,使用的是PC adapter数据线,step7 micro-win V4.0,…

    2017年11月25日
  • 关于西门子的EPLAN宏文件

    在哪里可以在下载EPLAN中关于西门子s7-200的宏文件? 最佳答案 在“Article number”处填写定货号收索即可那个网站即使你选择了Eplan有时候也无法下…

    SIMATIC S7-200 2021年7月5日
  • 226数字量输出

    咨询一下226上的数字量输出,上面标着1L+,1M,我看接线图上24V电源+接1L+,输出点Q接到电源负上了,我觉得这样已经形成回路了啊,可是接线图上把1M也接到了电源负上了,那条…

    SIMATIC S7-200 2021年7月4日
  • 我有7台226,能组成个MPI网络测试吗?

    俺手头有7个226,有一个PPI编程电缆,用的是笔记本,单个通讯PLC没啥,俺想给7个PLC连起来,不知道行不? 俺想用我的笔记本读取组成MPI网的226数据 …

    SIMATIC S7-200 2021年7月5日
  • 无法安装step7-200

    安装step7-200 SP9时出现“in order to install a newer version&…

    SIMATIC S7-200 2021年7月5日
  • s7-200编程

    我要编一个接人PT100的信号来控制水泵的启停,达到35度,泵就开达不到就关,各位大哥帮帮忙,这样的的程序怎么编了?谢了 最佳答案 RTD测量温度时不再是对应0~32000,温度值…

    SIMATIC S7-200 2021年7月5日
  • 开集电极信号怎样输入到PLC(s7-200)?

    投币器出来一个开集电极信号,请问怎样输入到PLC中? 最佳答案 继电器转换连接图,见附件图示。 图片说明:    提问者对于答案的评价:谢谢。现在用的这个投币器…

    2017年8月26日