系统采用CP341与横河DCS通讯,我们这边做从站,横河那边是主站。DCS读我这边的模拟量和给我这边的模拟量都没有问题,我这边给DCS的数字量共有30个点(地址是M20.0~M23.5),我本来采用FC02功能码,这样这30个点对应的地址是10001~10030,而DCS那边的数字量的数据类型是Input(Direct)、Bits,一个地址可对应16个数字量点,相当于10001的地址对应的是我这边的前16个点,这样一来DCS就只做了两个地址10001和10002就可对应我这边的30个点了,但结果是DCS那边只能看到我这边的前16个点的状态,后14个看不到。横河那边要我们把数字量16个点打一个包传过去,对应他那边的一个地址,我就用FC04功能码传,在DB块中的数据类型选的是word,一个字可对应16个数字量点,两个字就可以传过去了,我这边的地址是30001和30002,DCS那边的数据类型选择16位无符号或16位有符号数都没有显示,选择Input(Direct)、Bits有显示,但是所有数字量的状态老是在0和1之间跳,基本上四五秒就变一次。我又把这个字的高八位和低八位掉了个位置,在FC04功能码对应的DB块中将数据类型由word改为BOOL型,做了30个BOOL型的变量对应这30个数字量,结果DCS那边还是在0和1之间跳,请问这是怎么回事啊,如果说要把数字量16个点打个包传过去该怎么做啊?谢谢大家啦!
最佳答案
在“Protocol”对话框里有个"Limits"选项 min 值和MAX值修改下
提问者对于答案的评价:
这个也设置了 没有问题 就是不知道咋回事
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc242265.html