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

相关推荐

  • s7-200 modbus

    我现在有个项目,要用s7-200通过modbus协议采集阿特拉斯空压机的数据 2台阿特拉斯空压机是通过can总线连接的,有个combox-s模块可以把空压机can协议转换…

    SIMATIC S7-200 2021年7月5日
  • 向各位大神求助

    苦苦找寻modbus指令库无果,求各位高手指点哪里可以下载,或者有资源恳请分享一下在下邮箱;1259205749@qq.com 最佳答案 下载中心有 提问者对于答案的评价:已经找到…

    SIMATIC S7-200 2017年6月9日
  • 西门子200最快采集速度是多少?

    用EM235模拟模块来采集信号,问一下,西门子的主机带这个EM235模拟扩展来采集模拟量,程序不是很多大约30个网络,能做到10ms采集一次模拟量吗?200的主机能做到多长时间采集…

    SIMATIC S7-200 2020年11月1日
  • S7-200 Explorer应用程序可以单独安装和使用吗?

    S7-200 Explorer应用程序是随STEP 7-Micro/WIN V4.X自动安装的,那么当Micro/WIN卸载的时候S7-200&nbs…

    SIMATIC S7-200 2021年7月5日
  • 为什么我用PPI-RS485数据线把西门子PLC226CPU和电脑连接好了,怎么在设备管理器里

    为什么我用PPI-RS485数据线把西门子PLC226CPU和电脑连接好了,怎么在设备管理器里看不到SIMATIC  Devices? 图片说明:  …

    2021年7月5日
  • 828d 主轴倍率为零

    急等:828d铣床系统,主轴为第4个轴,屏幕显示倍率为零,调整倍率开关不起作用,请问是哪个信号或参数不对?设置了参数35000=1,30300=1,30310=1,30320=1及…

    SIMATIC S7-200 2021年7月5日
  • S7-200自由口发送接收问题

    大家都知道S7-200的端口是半双工的RS485,它在接收状态是不能发送的, 现在有一个控制要求是PLC走自由口协议,一直处于接收状态,当收到下位机信号时,处理再先下位机…

    SIMATIC S7-200 2021年7月5日
  • 求200自由口通讯程序

    求西门子s7200PLC与一个智能温度扩展模块自由口通讯的程序例子,226的plc,用PORT1口通讯,处理温度模块传过来的八路温度数据。自己程序也写了,发现还是不行,先请教各位高…

    SIMATIC S7-200 2021年7月4日
  • PPI-RS232加USB-RS232转换线能取代PPI-USB吗?

    西门子的两根原装电缆,PPI-232能通过USB-串口实现USB协议的通讯吗?和组态王(即在STEP7里能否选择USB通讯),有人这么试过吗?我有根PPI-USB的,想买根PPI-…

    SIMATIC S7-200 2020年10月31日
  • 关于DP协议

    他们的上位机编程软件是wincc,那我这边的制氮机是s7-200来控制的,他们说要我提供PLC程序里编好的中间变量,但是我这个程序里,比如启动和停止,根本没有中间变量啊,只有报警有…

    2017年11月23日