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日 下午4:10
下一篇 2020年11月1日 下午4:10

相关推荐

  • EM231信号波动大

    EM231 c、d 接两路4-20MA的信号,分别来自PH-300T,未用端子已短接,其中一路信号在程序里监控信号波动很大。一路稳定,线路接法距离都一样,唯一不…

    SIMATIC S7-200 2021年7月5日
  • 西门子200PLC CPU224XP 和CPU 224XPSI这两个有什么不同之处

    西门子200PLC CPU224XP 和CPU 224XPSI这两个有什么不同之处 问题补充:什么叫做漏型输出。是不是负逻辑输出啊! 最佳答案 CPU…

    SIMATIC S7-200 2021年7月5日
  • S7-200型号上A与B的区别

    请问6ES7223-1PL22-0XB8和6ES7223-1PL22-0XA8,这A和B两字分别代表的什么意思?有什么区别?  最佳答案 西门子只有6ES7223-1PL…

    SIMATIC S7-200 2021年7月5日
  • pid向导 s7-200

    过程变量为脉冲信号,可以用pid向导做吗 问题补充:比如说,我控制流量,流量传感器为脉冲信号 最佳答案 可以用PID。1、脉冲信号不能直接用,要转换成PID向导要求的范围。2、转换…

    SIMATIC S7-200 2021年7月5日
  • 请问PC/PPI线发烫怎么办?

    我的是s-200的plc USB-485的线,只要把电脑与plc连接上就发烫,怎么解决呢? 现在不敢用了,我想在不连线的情况下清除plc里面的程序,该怎么做? …

    SIMATIC S7-200 2021年7月4日
  • 能否通过DP网络给200下载程序?

    在315-2DP型号CPU的DP总线上,通过em277模块挂一个200的从站,通讯正常。问电脑通过MPI电缆连接300CPU的时候,能不能通过dp网络给200的CPU下载程序? 最…

    SIMATIC S7-200 2021年7月5日
  • 写了一段PID程序,但是测试时无输出

    各位前辈,我写了一段PID的程序,用CPU224的模拟电位器模拟时,即调节SMB28小螺丝,PID输出结果无变化,本人新手,还请指点一下,哪里的问题,谢谢,不胜感激(是关于锅炉汽包…

    SIMATIC S7-200 2017年6月27日
  • STEP 7 Micro/WIN V4.0在哪里可以下载

    求官网下载链接 钻石用户推荐最佳答案 官网下载地址,无需申请,点击即可下载:STEP 7 Micro/WIN V4.0 SP9完整版安装包:…

    2021年7月5日
  • TD400C显示无参数块是什么意思

    第一次用,第一次就显示几个汉字,挺好的。第二次把一计数变量加进去,还有几行程序时候就出现 无参数块是什么意思? 问题补充:我再仔细看了一遍,设置了个很简单的程序。PLC中…

    SIMATIC S7-200 2021年7月4日
  • STEP7-microwin v4.0 sp9

    开启软件报警“STEP7-MICRO/WIN 必须重装才能在S7中作为集成”但同样可以打开软件,是什么原因造成?写出的程序会有影响吗? 最佳答案 不会影响,可以使用,不知…

    SIMATIC S7-200 2017年11月16日