故事作者:依然

最近创作

看看TA的故事

【通讯】钻井平台动力2——电源管理系统Modbus通讯

已锁定

依然

西门子1847工业学习平台

  • 帖子

    2530
  • 精华

    24
  • 被关注

    110

论坛等级:至圣

注册时间:2004-04-13

普通 普通 如何晋级?

【通讯】钻井平台动力2——电源管理系统Modbus通讯

492

0

2021-01-12 13:28:10

现场发电机采用WOODWARD的EGCP-3作为主控制器,通过EGCP-3和2301-D控制柴油机的转速,实现转速平稳控制,EGCP-3和BASLE电气的DECS-100,来控制发电机的励磁信号,使发电机输出电压平稳。功率管理系统使用CP341作为通信接口和EGCP-3进行基于MOUDBUS通讯协议的通讯,分别读取发电机电压,电流,运行状态,报警状态,故障信息代码,并列运行状态,功率分配等信息,并且按照功率管理系统的计算结果,对并列发电机进行起机和并列运行操作,对解列发电机停车操作。


首先,安装西门子的例程,进行单从站的通讯测试。

然后,多从站的读操作;

测试没有问题后,当时也没特殊需求,就直接发到船厂了。

结果,现场又提了远程操作需求,这样的话涉及给从站写命令。所以,

继续单机写操作,没有毛病;

多机写操作,也没有问题。

然后当把读写程序都开放测试时,问题出现了。

当写操作进行时,读操作会偶发性的中断,两个通讯请求的时序匹配问题,导致读上来的参数混乱。



 

后来把读写通讯优化才得以解决。把读写放到一个判断跳转块中。

L     6

      T     "SendLength"

 

      L     "Data_Segment_Index"

      JL    LSTX

      JU    SEG0

      JU    SEG1

      JU    SEG2

      JU    SEG3

      JU    SEG4

      JU    SEG5

      JU    SEG6

      JU    SEG7                        //写数据

LSTX: JU    end

 

//fuction code is 2 Read Input Status

SEG0: L     "GEN_No"

      T     "SOURCE_DB".slave_address

      L     2

      T     "SOURCE_DB".function_code

      L     6

      T     "SOURCE_DB".DATA_ADDR

      L     32

      T     "SOURCE_DB".DATA_LENGTH

 

      L     0                           //0,1,2,3

      T     "RecvDataOffset"            //DBB_NO. the received blocks start address

 

      JU    end

 

//fuction code is 2 Read Input Status

SEG1: L     "GEN_No"

      T     "SOURCE_DB".slave_address

      L     2

      T     "SOURCE_DB".function_code

      L     38

      T     "SOURCE_DB".DATA_ADDR

      L     32

      T     "SOURCE_DB".DATA_LENGTH

 

      L     4                           //4,5,6,7

      T     "RecvDataOffset"

      JU    end

 

//fuction code is 2 Read Input Status

SEG2: L     "GEN_No"

      T     "SOURCE_DB".slave_address

      L     2

      T     "SOURCE_DB".function_code

      L     81

      T     "SOURCE_DB".DATA_ADDR

      L     32

      T     "SOURCE_DB".DATA_LENGTH

 

      L     8                           //8,9,10,11

      T     "RecvDataOffset"

      JU    end

 

SEG3: L     "GEN_No"

      T     "SOURCE_DB".slave_address

      L     2

      T     "SOURCE_DB".function_code

      L     136

      T     "SOURCE_DB".DATA_ADDR

      L     32

      T     "SOURCE_DB".DATA_LENGTH

 

      L     12                          //12,13,14,15

      T     "RecvDataOffset"

      JU    end

 

SEG4: L     "GEN_No"

      T     "SOURCE_DB".slave_address

      L     4

      T     "SOURCE_DB".function_code

      L     5

      T     "SOURCE_DB".DATA_ADDR

      L     24

      T     "SOURCE_DB".DATA_LENGTH

 

      L     20                          //20-66word

      T     "RecvDataOffset"

      JU    end

 

SEG5: L     "GEN_No"

      T     "SOURCE_DB".slave_address

 

      L     4

      T     "SOURCE_DB".function_code

 

      L     58

      T     "SOURCE_DB".DATA_ADDR

 

      L     24

      T     "SOURCE_DB".DATA_LENGTH

 

      L     68                          //68--114

      T     "RecvDataOffset"

      JU    end

 

SEG6: L     "GEN_No"

      T     "SOURCE_DB".slave_address

      L     4

      T     "SOURCE_DB".function_code

      L     106

      T     "SOURCE_DB".DATA_ADDR

      L     24

      T     "SOURCE_DB".DATA_LENGTH

 

      L     116                         //116--164

      T     "RecvDataOffset"

      JU    end

 

//写数据到EGCP

SEG7: NOP   0

 

      A     "Mode_Write_Modma".GEN5_Mode_W_R

      JCN   _w5

      L     5

      T     "GEN_No"

_w5:  NOP   0

 

说起来貌似很惬意,很轻松,但是当时确实费了不少功夫。看看我的备份程序记录:


EGCP-3要求auto=1, run=0时可由Modbus远程启停机,即此情况下才能执行网络写操作。

当前的情况是本地开关在STANDBY模式下,可以通过网络进行AUTO,OFF,STANDBY的切换。

当前的EGCP-3输出auto,run ,test状态虽然读到HMI上,但是只有本地开关在除了STANDBY以外的位置时,读到的状态和本地开关的位置一致;

当本地开关置于STANDBY时,经过网络写操作,读上来的状态有可能为OFF,STANDBY,AUTO。

也就是说,如果不知道本地开关的状态,只依据网络读上来的状态,并不能判断本地开关处于什么位置。


现在的解决方法是:把各个本地开关的STANDBY信号引入PLC的DI端子,这样无论读上来的EGCP是什么状态,都能判断本地开关处于什么位置。



【通讯】钻井平台动力2——电源管理系统Modbus通讯 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3437条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。