在 Windows/系统更新后,我用于执行器控制的应用程序(在 Win 7 上运行的 .NET 4.7.1)不再工作。我在 SMX 模式下使用 Siemens WinAC ODK 4.2 来控制连接到 Festo 执行器的 PLC。
我现在在 S7smxx.dll 中调用 S7SMX_Open()(通过互操作)时得到错误代码 2。该错误代码在我的程序中定义为“S7SMX_ERR_NO_LOCATOR”。
方法声明:
// Open SMX connection
[DllImport(@"S7smxx.dll", EntryPoint = "?S7SMX_Open@@YAHKPBDPAPAX@Z", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
public static extern errorCodes S7SMX_Open(flags dwFlags, [MarshalAs(UnmanagedType.LPStr)] String pDeviceName, out IntPtr phHandle);
程序中的主线程被标记为使用单线程单元(STAThread)。
我看过西门子论坛没有太多运气。
错误是什么意思,我该如何解决?