modbus通讯如何设置同步时钟

226做modbus从站与第三方设备通讯。将PLC内部时钟信息放到缓冲区以便对方读取,查看时间是否正确。若不正确,对方会发送年月日时分秒的数据,同步我PLC的内部时钟。我的问题是:
1。因为不知道对方何时发来时间信息,也有可能发其他信息过来。我用的指令库编程,不知道怎样判断发送来的是时间信息。
2。用指令库编程,怎样查看对方发送命令中的功能码?

问题补充:
多谢一楼的回答。Modbus指令库我也研究过了。
1。但是对方已经把modbus地址规定好了,发送读取的时间信息都在同一个地址里面,所以我想依靠查看功能码的方式来判断,是放数据进缓冲区,还是从缓冲区拿数据。
2。对方发来时间数据同步我PLC,有什么比较好的触发TODW的方法呢? 我本来用的是SMB86的上升沿,但如果对方发来的其他信息,也会触发SMB86,似乎不对。请教!

最佳答案

感觉你们的做法是有矛盾的,不如协商一下,就以主站的时间为准,主站写时间到从站,就不读取了。
另一种方法就是不要用从站库。

第一个问题:
先看看以下内容:
HoldStart处填写的就是保持寄存器V起始地址,
如果是&vb100, 那么保持寄存器(V)第一个地址就是VW100,
如果是&vb1000,那么保持寄存器(V)第一个地址就是VW1000,

MaxHold处填写的是可供主站读写的保持寄存器VW的数量

如果HoldStart=&vb100,MaxHold=10,那么地址对应如下:
VW100    40001   
VW102    40002   
VW104    40003   
VW106    40004   
VW108    40005   
VW110    40006   
VW112    40007   
VW114    40008 
VW116    40009   
VW118    40010 
共10个

如果HoldStart=&vb300,MaxHold=100,那么地址对应如下:
VW300    40001   
VW302    40002   
VW304    40003

VW498    40100  
共100个


如果你做modbus从站,那么你可以将主站需要的数据,存放在保持寄存器里(HoldStart=&vb300)
如果VW300是A相电压,VW302是B相电压,VW304是C相电压,VW306是A相电流,VW308是B相电流,VW310是C相电流,那么你告诉对方如下的通讯协议:
40001   A相电压
40002   B相电压
40003   C相电压
40004   A相电流
40005   B相电流
40006   C相电流

以上看明白了,就知道怎么做了,
你可以将PLC时间放置到你设定的地址区域,比如40020为小时,40021为分钟,40021为秒钟,
将其他地址放置主站送过来的时间。

第二个问题:
用指令库编程,不需要知道主站发送的信息功能码。

提问者对于答案的评价:

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

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

相关推荐

  • 求救!!S7 200断电后参数为零

    我们使用的S7 200的在使用中,断电后,原先设置的参数全部变为零了,重新设置后又可以正常使用。请问:“是哪个地方出了问题”,盼复,谢谢! 最佳答案 我不知道你所说参数是…

    SIMATIC S7-200 2021年7月5日
  • 226与MMV自由口通讯

    单相370W的MICROMASTER  Vector(6SE9212-1CA40)与S7226(216-2BD22-0XB0)自由口通讯,不要用西门子USS协议…

    SIMATIC S7-200 2021年7月5日
  • cpu200程序最大容量

    200plc的程序最大是多少K或M,程序里的网络数有限制吗?最大多少? 最佳答案 每款CPU的容量都是不一样的。可以参见产品目录中有详细说明。S7-221/S7-222 …

    SIMATIC S7-200 2020年11月1日
  • 请教:PLC在发出阀门开的指令后,程序如何判定阀门到底开了吗?

    请教:PLC在发出阀门开的指令后,程序如何判定阀门到底开了吗?谢谢了 问题补充:初学者,想知道:(请注意:前提是每个阀门有一个输出控制信号,每个阀门都有开和关到位两个状态信号到PL…

    SIMATIC S7-200 2021年7月5日
  • 编码器定位

    现在一个送料小车卷扬端连接有编码器,编码器连接s7 200PLC,要实现通过编码器精确的对小车定位,还需要其他硬件吗,如何实现,谁能给出具体的编码器类型和最合适的PLC型…

    SIMATIC S7-200 2017年6月24日
  • TD400C如何让变量显示为汉字??

    我需要在TD400C上显示泵状态:如变频;工频;停止。例如把状态显示定义为VD5000  当泵变频运行时,把变频赋给VD5000,在TD400C上需要显示变频字…

    SIMATIC S7-200 2021年7月5日
  • 模拟量输入

    我用S7-200系列的扩展模拟量输入模块,选择的是电阻型的,接NI1000电阻,电阻与PLC接收的模拟值对应关系是怎样的,量程范围呢?请帮忙解答谢谢  最佳答案 如果你用…

    SIMATIC S7-200 2021年7月5日
  • s7-200 em235 扩展模块输出

    用万用测量 M 点和V0输出电压 plc 输出16000 端子应该5V但是端子只输出3V plc输出32000&nbsp…

    SIMATIC S7-200 2021年7月5日
  • 西门子200的模拟量的输入和输出怎么用

    请问高工们,西门子200的模拟量(0-10V/4-20MA)的输入和输出怎么样用呀~怎么样在200的PLC中编写程序和设置 ~`~~~~~~~谢谢~~ 最佳答案 4-20…

    SIMATIC S7-200 2021年7月4日
  • 浮点计算

    请教大家:我在做浮点运算时,用2个双字相除。比如VD10为12,VD20中为8,得出的结果1.5放入VD30,但是VD30中不是1.5,而且溢出标志位SM1.1=1,,现在需要显示…

    SIMATIC S7-200 2020年10月31日