fix: rebuild MES as compilable go-zero+ent backend (renamed bj_power_mes), restore 3 workstation projects from pristine original, align naming; all Go projects go build clean
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package robot
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"time"
|
||||
|
||||
"bj_power_mes/internal/preload"
|
||||
)
|
||||
|
||||
// RequestCleaningLoading 发送清洗线上料请求(PLC M1146.3 = true)。
|
||||
// 清洗线上料前先发送信号
|
||||
func (c *Controller) RequestCleaningLoading(ctx context.Context) error {
|
||||
addr := preload.GetMAddress("CleaningRequestLoading")
|
||||
slog.Info("发送清洗线上料请求", "address", addr.Addr.String())
|
||||
err := c.plcClient.WriteBool(addr.Address(), true)
|
||||
if err != nil {
|
||||
slog.Error("发送清洗线上料请求信号失败", "address", addr.Address(), "error", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// CloseRequestCleaningLoading 关闭清洗线上料请求(PLC M1146.3 = false)。
|
||||
// 清洗线上料后关闭信号
|
||||
func (c *Controller) CloseRequestCleaningLoading(ctx context.Context) error {
|
||||
addr := preload.GetMAddress("CleaningRequestLoading")
|
||||
slog.Info("关闭清洗线上料请求", "address", addr.Address())
|
||||
err := c.plcClient.WriteBool(addr.Address(), false)
|
||||
if err != nil {
|
||||
slog.Error("关闭清洗线上料请求信号失败", "address", addr.Addr.String(), "error", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// WaitCleaningReady 等待清洗线就绪信号(PLC M1146.1 = true)。
|
||||
// 清洗线上料前必须等待此信号,表示流水线有位置可以放入工件。
|
||||
func (c *Controller) WaitCleaningReady(ctx context.Context) error {
|
||||
addr := preload.GetMAddress("CleaningReady")
|
||||
slog.Info("等待清洗线就绪信号", "address", addr.Addr.String())
|
||||
if err := c.WaitSignal(ctx, addr, true, false); err != nil {
|
||||
return fmt.Errorf("等待清洗线就绪信号失败: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Controller) StartupCleanLine(ctx context.Context) error {
|
||||
addr := preload.GetMAddress("CleaningStartup")
|
||||
if err := c.plcClient.WriteBool(addr.Addr.String(), true); err != nil {
|
||||
return fmt.Errorf("发送启动信号 %s 失败: %w", "CleaningStartup", err)
|
||||
}
|
||||
time.AfterFunc(2*time.Second, func() {
|
||||
_ = c.plcClient.WriteBool(addr.Addr.String(), false)
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Controller) IsCleanLineDone(ctx context.Context) (bool, error) {
|
||||
addr := preload.GetMAddress("CleaningDone")
|
||||
result, err := c.plcClient.ReadBool(addr.Addr.String())
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("读取清洗线完成信号 %s 失败: %w", "CleaningDone", err)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
Reference in New Issue
Block a user