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:
SunYF
2026-08-27 10:56:41 +08:00
parent 380715f8a9
commit 371b494c54
523 changed files with 67923 additions and 24758 deletions
+67
View File
@@ -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
}