Best Practices
Use a Separate Tag Provider
Have your TamakiMES tag provide be raw tags, build your own UDTs with Alarming/History/whatever using reference tags pointing at the raw tags. This way you can change the raw tags without affecting the UDTs.
No Direct PLC Access
Per the purdue model and security best practices, do not allow direct access to the PLCs from the MES. Instead, use a gateway or middleware to access the PLCs. This way you can control access to the PLCs and have a single point of access for all PLCs.
Dedicated Database Connection for Tamaki MES
Create a database connection in the gateway that is used only by Tamaki MES (its own schema, and ideally its own credentials), and point named queries, tag history, alarm journals, audit profiles, and integration scripts at a separate connection - even if both connections target the same database server.
Why:
- Tamaki MES tunes driver-level settings on its connection. When you enable the Allow Module to Manage Datasource setting (recommended), the module adds required connection properties to its datasource (see the Db properties). Connection properties apply to the whole connection pool, so everything sharing the connection inherits behavior that is tuned for the MES schema rather than for your tables.
- Especially on Microsoft SQL Server. With the setting enabled, the module sets
sendStringParametersAsUnicode=false, which is required to prevent index-scan-driven lock contention and deadlocks on the MES tables. On a shared connection this also means string values written tonvarcharcolumns by other consumers (Ignition's alarm journal and audit log tables arenvarcharon SQL Server, and many integration tables are too) silently lose characters outside the database code page -≥,Δ, Greekμ, macrons, CJK, emoji become?- and search parameters containing such characters stop matching. A dedicated MES connection gives you the deadlock fix without touching anyone else. See Unicode behavior on SQL Server for the details and how to check your database. - Pool sizing and isolation. Tamaki MES needs a large pool (50–100 connections) for OEE and inventory data collection. Sharing that pool with historian bursts or heavy reports causes hard-to-diagnose contention; separate connections give each workload its own pool and make gateway connection metrics meaningful.
Local Database
Keep a local database on the MES server for storing data that is not critical to the operation of the MES. This way you can keep the MES running even if the network goes down. Data in the local database can be synced to the main database when the network comes back up.
Inherit Tamaki MES Project
Tamaki MES is distributed with a Perspective project that is inheritable. Always do your work in a child project that
sets TamakiMES as its parent: never edit the TamakiMES project itself. That way module upgrades (which re-import
the TamakiMES project) leave your customizations untouched.
See Perspective Project Setup for the full walkthrough.